2013-03-03 177 views
2

我從版本3.5升級到版本3.7,現在在安裝程序的預生成步驟中遇到錯誤。WiX升級後出現熱量錯誤

有問題的預生成步驟是"%wix%\bin\heat.exe" dir "$(OutDir)_PublishedWebsites\Application Files" -dr INSTALL_LOCATION -cg SourceComponentGroup -ag -var var.SourcePath -out "$(ProjectDir)HeatFile.Generated.wxs"

現在,這導致我們的團隊建設與錯誤而失敗C:\Program Files (x86)\MSBuild\Microsoft\WiX\v3.x\wix2010.targets (816): The command ""%wix%\bin\heat.exe" dir "C:\Builds\12\TFS\Wix 3.7 Test Build\Binaries\_PublishedWebsites\Application Files" -dr INSTALL_LOCATION -cg SourceComponentGroup -ag -var var.SourcePath -out "C:\TFS\WiX3.7\Install\HeatFile.Generated.wxs"" exited with code 3

我想不出什麼會已經改變導致此錯誤,除非有些東西已經發生了變化,我還沒有發現。

編輯:

羅布後述詳細下面建立的評論,我一看,發現在「環境構建之前」,發現維克斯屬性設置爲WIX = C:\Program Files (x86)\Windows Installer XML v3.5\,但當我通過控制面板查看系統環境變量中的相同屬性,我發現WIX設置爲C:\Program Files (x86)\WiX Toolset v3.7\

在MSBuild配置中是否有某個地方會設置?

編輯2:

我也看準了這一點在我們的.wixproj文件:

<ProductVersion>3.5</ProductVersion> 
<ProjectGuid>{GUID}</ProjectGuid> 
<SchemaVersion>2.0</SchemaVersion> 
<OutputName>Install</OutputName> 
<OutputType>Package</OutputType> 
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath> 
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath> 

有什麼需要改變這裏(例如產品版本)?

+1

希望能夠通過MSBuild輸出和/或詳細日誌中的熱量本身提供更多信息。你可以添加這個問題嗎? – 2013-03-03 15:28:57

+0

Thanks @RobMensching - 我添加了一些更多信息。如果需要,我可以從日誌中添加更多詳細信息。 – Joeb454 2013-03-03 16:44:40

回答

6

我做了兩件事似乎已經解決了我的問題,所以我不能確切地說明確切的解決方案是什麼,但這是我所做的。

  1. 我重新啓動了構建服務器。儘管它顯示了正確的環境變量,並且從命令行返回了正確的值,但爲了以防萬一,我重新啓動了它。
  2. 我改變了預生成事件使用$(WIX)代替%WIX%

現在構建正確運行事件和成功。我與IIS網站有不同的問題,但如果需要,我會提出一個新問題。

+0

你在哪裏做第二次改變? – hakan 2013-07-08 07:42:42

+0

我剛剛有同樣的問題,並重新啓動修復它。我認爲這是因爲我的構建代理在安裝Wix時正在運行,所以在重新啓動之前他們沒有獲得新的環境。 (大概簡單地重新啓動代理也可以工作。) – 2014-07-04 16:40:37

+0

@NateHekman我認爲可能是這樣,是的。幾個月前我在本地開發機器上發現了一個類似的問題,使用WiX 3.8並重新啓動,以及 – Joeb454 2014-07-04 22:05:01