我正在使用WiX的項目參考特性來自動採用Heat來採集項目。這是非常有用的,因爲WiX安裝程序是在本地和TFS2010構建服務器上構建的,並且當它構建在構建服務器上時,輸出會重定向到不同的位置,這意味着如果我不自動收穫項目,嘗試引用最近編譯的項目的正確位置非常混亂。設置自動採集項目時的關鍵路徑
我有以下WiX的「代碼」,以安裝並啓動服務:
<ServiceInstall Id="MyService"
Type="ownProcess"
Vital="yes"
Name="MyServiceName"
DisplayName="My Service Display Name"
Description="My Service Description"
Start="auto"
Account="[SERVICEACCOUNT]"
Password="[SERVICEPASSWORD]"
ErrorControl="ignore"
Interactive="no" />
<ServiceControl Id="StartService" Name="MyServiceName" Start="install" Wait="no" />
<ServiceControl Id="StopService" Name="MyServiceName" Stop="both" Wait="yes" Remove="uninstall" />
到目前爲止,一切都很好。我得到一個問題,當安裝程序試圖然而,安裝並啓動Windows服務稱「服務'MyServiceName'(MyServiceName)啓動失敗,請確認您有足夠的權限啓動系統服務」。如果我選擇「忽略」按鈕,安裝將「成功」完成,但是當我檢查安裝在我的機器上的服務時,新服務未列出。
從我的在線調查中,我認爲問題在於服務實際上沒有正確安裝,因爲我需要將KeyPath設置爲應作爲服務運行的可執行文件,但由於我正在收集文件使用熱,我無法找到一種方法來做到這一點...除非我創建一個自定義的動作,將安裝服務,讓我可以指定可執行文件的名稱,一旦所有的文件已經安裝...但這並沒有'聽起來像它應該是正確的解決方案...
有沒有人有任何建議或有他們遇到同樣的問題,並拿出一個解決方案?
感謝
更新07/10/10:在我的WiX的劇本,我有以下幾點:
<Directory Id="INSTALLLOCATION" Name="Dolphin Transfer Service Server" ComponentGuidGenerationSeed="AF89976D-CD66-4b94-911B-1D27F969BC14">
<Component Id="ServiceComponent" Guid="F55415F7-803C-4a83-A677-C0F882699374">
<ServiceInstall Id="DolphinTransferService" Type="ownProcess"...
和我的收穫文件的目標目錄是INSTALLLOCATION目錄。
看着使用Orca的msi,我可以看到我的ServiceComponent和每個收穫文件的所有生成組件。查看文件表中沒有與此組件關聯的文件(因爲它們爲每個文件都生成了一個組件)。查看ServiceInstall表,它試圖安裝的組件是ServiceComponent。
所以我覺得這我需要以某種方式獲得,則ServiceInstall元素是針對服務產生的exe文件,使其安裝此組件作爲一個服務,而不是空「的ServiceComponent」組件的組件裏面?但是由於這個組件是在編譯時生成的,我還沒有設法取得進一步的進展......
日誌中沒有任何註釋。「操作:安裝」部分包含大量的「設置緩存產品上下文...」類型的消息,然後「注意:1:2228 2:3:錯誤4:SELECT'消息'從'錯誤'WHERE錯誤= 1715」 。然後它說它已成功完成... – VaticanUK 2010-10-07 08:12:58