WiX在构建服务器上失败
我有一个使用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建立帐户的域管理员组中列出。
其实这个问题是所有与建筑mismatch做。其中一个项目只能在x86中编译,因此必须将buildserver更改为使用x86。
编辑生成,过程,MSBuildPlatform X86
“试图加载格式不正确的程序。”是平台不一致的红旗。 – 2013-05-28 09:22:14
非常感谢!完全为我节省了大量时间,试图挖掘其他依赖性问题。 – SteckDEV 2016-03-22 15:59:00
尝试在双引号包裹你的命令
"C:\Program Files (x86)\WiX Toolset v3.6\bin\Heat.exe"
MS建立可以与具有中有空格的路径问题。
多数民众赞成无用,我正在使用http://www.chrissurfleet.co.uk/post/2011/06/30/simplify-deployment-with-visual-studio-and-wix.aspx请注意,加热的呼叫是使用建立行动,所以我不能引用它。 – Cookie 2013-02-26 19:21:33
好主意,凯尔,虽然在这种情况下错误消息确实似乎在寻找正确的exe路径,只是不能加载它。感觉像缺失的依赖项... – 2013-02-26 19:22:36
你确认 “C:\ Program Files文件(x86)的\ WiX的工具集3.6版\ BIN \ Heat.exe” 的存在? – 2013-02-26 16:33:41
是的,它确实存在。 – Cookie 2013-02-26 19:17:21
尝试[启用程序集绑定日志记录](http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx),看它是否能告诉你哪个程序集是最终原因以及原因。 – shambulator 2013-02-26 19:48:40