即使重新啓動,服務仍然存在,即使可執行文件不存在。我正在使用WIX版本3.0.5419.0爲什麼我的服務在卸載時被刪除? (WIX)
<Component Id="IdiomServer.exe" Guid="7a751e1e-5e9e-41d2-be60-dc905ab1ccad">
<File Id="IdiomServer.exe" Source="$(var.IdiomServer.TargetDir)IdiomServer.exe" KeyPath="yes" />
<ServiceInstall Id="IdiomServer_Service" Name="IdiomServer 4.0" Account="LocalSystem" Description="Idiom Repository Server" ErrorControl="normal" Start="auto" Type="ownProcess" Vital="yes" />
<ServiceControl Id="IdiomServer_Service" Name="IdiomServer 4.0" Remove="uninstall" Stop="uninstall" Wait="yes" />
</Component>
安裝Windows服務工作正常。卸載它似乎什麼都不做。從卸載日誌文件部分:
MSI (s) (D8:5C) [09:43:58:033]: Doing action: StopServices
MSI (s) (D8:5C) [09:43:58:033]: Note: 1: 2205 2: 3: ActionText
Action start 9:43:58: StopServices.
Action ended 9:43:58: StopServices. Return value 1.
MSI (s) (D8:5C) [09:43:58:033]: Doing action: DeleteServices
MSI (s) (D8:5C) [09:43:58:033]: Note: 1: 2205 2: 3: ActionText
Action start 9:43:58: DeleteServices.
Action ended 9:43:58: DeleteServices. Return value 1.
任何幫助將不勝感激。
關閉。問題不是ID,而是Component/@ Guid。一旦我改變了這一點,卸載工作正常。 在創建產品的新版本時,服務組件的Guid顯然需要隨Product/@ Id一起更改。 – 2009-09-16 00:29:19
這是不正確的。更改Component/@ Guid意味着組件中包含的所有資源也必須更改。這是通常稱爲「組件規則」的MSI限制。更改Component/@ Guids時,您會看到非常奇怪的升級和卸載行爲。 原始卸載的詳細日誌文件應顯示爲什麼ServiceControl不會刪除您的服務。 – 2009-09-16 19:33:10
請參閱Rob的博客條目http://robmensching.com/blog/posts/2003/10/18/Component-Rules-101,瞭解爲什麼在不更改資源的情況下更改Component Id是一件壞事。 – Martin 2009-09-23 01:26:38