1

大きな問題を抱えています。Guid="*"Rob Mが可能な限り使用するように言ったことを読んだので、すべてのGuidをこれに変更しました. 私の製品をアンインストールすると、今は台無しになっています。ファイルは正常に削除されますが、ショートカット、サービス、およびレジストリは削除されません。助けてください

これは私のサービスです:

  <Component Id="service" Guid="*">
    <File Id="service.exe" Name="service.exe" KeyPath="yes" Source="$(var.Bin)\service.exe"/>
    <ServiceInstall Id="service.exe" Name="[PRODUCTNAME]" Description="[ProductName]" Account="[SERVICEACCOUNT]" Password="[SERVICEPASSWORD]" Arguments=" /start [ProductName]" Start="auto" Interactive="yes" Type="ownProcess" Vital="yes" ErrorControl="critical" />
    <ServiceControl Id="service.exe" Name="[PRODUCTNAME]" Stop="both" Start="install" Remove="uninstall" Wait="no"/>
  </Component>

これはアンインストール ログです。

Service '' () could not be stopped. Verify that you have sufficient privileges to stop system services.

MSI (s) (DC:D0) [14:25:02:018]: Executing op:  ActionStart(Name=DeleteServices,Description=
Deleting services
,Template=
Service: [1]
  )
  MSI (s) (DC:D0) [14:25:02:018]: Executing op:     ProgressTotal(Total=2,Type=1,ByteEquivalent=1300000)
MSI (s) (DC:D0) [14:25:02:018]: Executing op: ServiceControl(,,Action=8,Wait=0,)
MSI (s) (DC:D0) [14:25:32:064]: Executing op: ServiceControl(,Name=OPC,Action=8,Wait=0,)


Info 1922.

Service '' () could not be deleted. Verify that you have sufficient privileges to remove system services.

名前を拾っていませんが、なぜこれを行うのか誰か知っていますか?

4

3 に答える 3

3

最初の質問:

  • この製品のバージョンはすでにリリースされていますか? その場合、コンポーネントの GUID を変更することは、コンポーネント ルールに大きく違反する可能性が高いため、リリース後にこれらを変更しないでください。テスト マシン上にのみ存在する場合、それは重要ではありません。
  • コンポーネント ルールの違反がアンインストールに影響しないようにテスト マシンをリセットしていますか? または、アンインストールが失敗する前に何らかのアップグレードを実行しようとしていますか?
  • アンインストールからの詳細な MSI ログは何を示していますか?
于 2012-11-07T12:57:10.417 に答える
1

プロパティ「PRODUCTNAME」はどのように定義されていますか? 定数でない場合は、アンインストール シーケンス中に初期化が実行されていることを確認してください。

于 2012-11-08T14:41:18.080 に答える
0

MSIZAPは、インストーラーによってマシンにインストールされたすべてのものを排除する究極の方法です。やろうとしていることの概念実証でテストし、すべてのインストール テストに VM を使用することをお勧めします。

于 2012-11-07T20:33:09.200 に答える