0

msi パッケージ (WIX) によってサービスをマシンにインストールしています。ただし、メジャー アップグレードが完了すると、サービスはアンインストールされますが、インストールされません。

これは私のコードです:

 <Component Id="abc" Guid="{E64A8CDD-816F-4544-9ACD-A2E367F7758A}">
              <File Id="EventTraceService.exe" Source="..\..\..\..\Products\abc.exe"  Vital="yes" KeyPath ="yes"/>
              <File Source="..\..\..\..\Products\abc.exe.config" Vital="yes" />
              <ServiceInstall
              Id="ServiceInstaller"
              Type="ownProcess"
              Vital="yes" 
              Name="abc"
              DisplayName="abc"
              Description="Monitoring and management of Trace"
              Start="auto"
              Account="LocalSystem"
              Interactive="yes"
              ErrorControl="normal"
                  />
<ServiceControl Id="StartService" Start="install" Stop="uninstall" Remove="uninstall" Name="abc" Wait="yes" />

前もって感謝します!

4

2 に答える 2

2

考えられる原因の 1 つは、コンポーネントの GUID を変更したことです。その結果、同じリソース (の異なるバージョン) が異なるコンポーネントによって管理されます。

コンポーネント ルールが壊れている場合に何が起こるかについての Windows インストーラーのドキュメントから:

作成者は、2 つの異なるコンポーネントに同じリソースを含めます。

2 つのコンポーネントに同じ名前と場所のリソースがあり、両方のコンポーネントが同じフォルダーにインストールされている場合、いずれかのコンポーネントを削除すると共通のリソースが削除され、残りのコンポーネントが破損します。

  • いずれかのコンポーネントをアンインストールすると、リソースが削除され、他のコンポーネントが破損します。
  • コンポーネントの参照カウント機構が破損しています。

あなたの症状に合っているようです。

于 2012-04-27T22:31:52.990 に答える
1

サービス EXE が両方のパッケージで同じバージョンである場合、これはファイルのバージョン管理規則が原因で発生します。詳細については、こちらの記事をご覧ください: http://setupanddeployment.com/windows-installer-bugs/missing-files-upgrade/

于 2012-04-30T06:09:01.240 に答える