2

Windowsサービスをインストールし、少なくとも1つのインスタンスを用意する必要があります。ユーザーは、提供するサービスの数を決定します。しかし、私はどのアプローチを取りますか?

  • 私のServiceInstallをWindowsサービスの数ごとに作成するか、installutilを介してカスタマイズしてインストールしてみてください。

次に、重複がインストールされないように解決する必要があります。ただし、インストールするサービス名を含むxmlファイルを作成し、そこから読み取ることはできます。

しかし、wixでforeachを使用するのは非常に複雑であるため、人々はそれを好まないことを読みました。また、installutilも適切ではないと言う人もいます。でも、いくつのサービスになるかわからないので、こういうことで解決しなければなりません。

そして、installutilを使用すると、ロールバックも取得されませんか?

誰かが別のアプローチを知っていますか?

4

2 に答える 2

1

インストールするサービス要素を含むMSIにパッチを適用するカスタムアクションを実行できます。このアプローチにより、必要な場所からサービス名を読み取り、必要な数のサービスをインストールできます。

後でインストーラーのソースコードを読む人にとっては、それは非常に簡単なことではありませんが。そして正直なところ、私はこのアプローチを使用したことがありません。しかし、それはうまくいくはずです...

于 2013-02-07T12:06:23.703 に答える
0

私はこれをすることになった

public static void Main(string[] args)
    {
            if (System.Environment.UserInteractive)
            {
                string parameter = string.Concat(args);
                switch (parameter)
                {
                    case "install":
                        ManagedInstallerClass.InstallHelper(new string[] { Assembly.GetExecutingAssembly().Location });
                        break;
                    case "uninstall":
                        ManagedInstallerClass.InstallHelper(new string[] { "/u", Assembly.GetExecutingAssembly().Location });
                        break;
                }
            }
            else
            {
                ServiceBase.Run(new WindowsService());
            }
        }
    }

私のサービスをそれ自体でインストール可能およびアンインストール可能にし、次にそれらをインストールおよびアンインストールするためのカスタムアクションを作成しました

于 2013-02-18T10:34:28.133 に答える