2013-02-26 137 views
5

我有一個使用WiX的項目。它可以在我的本地機器上正常工作,但是當我發佈到構建服務器時,構建過程中會出現以下情況。WiX在構建服務器上失敗

從MSBuild的日誌

Using "HeatDirectory" task from assembly "C:\Program Files (x86)\WiX Toolset v3.6\bin\\WixTasks.dll". 
Task "HeatDirectory" 
    Command: 
    C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe dir "C:\Builds\3\Project\Foo Bar - CI\Sources\Company.Foobar.UI\obj\BuildServer\Package\PackageTmp\\" -cg Company.Foobar.UI_Project -dr INSTALLLOCATION -scom -sreg -srd -var var.WebServiceProjectDir -ag -sfrag -out web\Company.Foobar.UI.wxs 
    Could not load file or assembly 'file:///C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe' or one of its dependencies. An attempt was made to load a program with an incorrect format. 
    at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) 
    at System.Reflection.RuntimeAssembly.InternalLoadFrom(String assemblyFile, Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean forIntrospection, Boolean suppressSecurityChecks, StackCrawlMark& stackMark) 
    at System.Reflection.Assembly.LoadFrom(String assemblyFile) 
    at Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(Object parameters) 

我有維克斯3.6構建服務器上安裝並運行TFS建立帳戶的域管理員組中列出。

+0

你確認 「C:\ Program Files文件(x86)的\ WiX的工具集3.6版\ BIN \ Heat.exe」 的存在? – 2013-02-26 16:33:41

+0

是的,它確實存在。 – Cookie 2013-02-26 19:17:21

+0

嘗試[啓用程序集綁定日誌記錄](http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx),看它是否能告訴你哪個程序集是最終原因以及原因。 – shambulator 2013-02-26 19:48:40

回答

6

其實這個問題是所有與建築mismatch做。其中一個項目只能在x86中編譯,因此必須將buildserver更改爲使用x86。

編輯生成,過程,MSBuildPlatform X86

+1

「試圖加載格式不正確的程序。」是平臺不一致的紅旗。 – 2013-05-28 09:22:14

+0

非常感謝!完全爲我節省了大量時間,試圖挖掘其他依賴性問題。 – SteckDEV 2016-03-22 15:59:00

0

嘗試在雙引號包裹你的命令

"C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe" 

MS建立可以與具有中有空格的路徑問題。

+0

多數民衆贊成無用,我正在使用http://www.chrissurfleet.co.uk/post/2011/06/30/simplify-deployment-with-visual-studio-and-wix.aspx請注意,加熱的呼叫是使用建立行動,所以我不能引用它。 – Cookie 2013-02-26 19:21:33

+0

好主意,凱爾,雖然在這種情況下錯誤消息確實似乎在尋找正確的exe路徑,只是不能加載它。感覺像缺失的依賴項... – 2013-02-26 19:22:36

相關問題