【发布时间】:2014-11-19 00:38:18
【问题描述】:
我在我的 *.wixproj 文件中使用 HeatDirectory 任务,它在我的机器上运行良好,在本地构建。
但是,在 TFS 上,它失败并出现以下错误:
C:\Program Files (x86)\WiX Toolset v3.8\bin\Heat.exe 目录 D:\Builds\32\48\bin\Debug\InstallSrc\WebApp\ -cg CompGrp_WebApp -dr WebApp -ke -scom -sreg -srd -var var.WebAppSrc -v -ag -sfrag -suid -out WebApp_.wxs 无法加载文件或程序集 'file:///C:\Program Files (x86)\WiX Toolset v3.8\bin\Heat.exe' 或其依赖项之一。一个 试图加载格式不正确的程序。 在 System.Reflection.RuntimeAssembly.nLoad(AssemblyName 文件名,字符串代码库,证据 assemblySecurity,RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection, Boolean 抑制安全检查) 在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean for Introspection, Boolean 抑制安全检查) 在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,RuntimeAssembly reqAssembly, StackCrawlMark& stackMark,布尔 throwOnFileNotFound,布尔 forIntrospection, Boolean suppressSecurityChecks) 在 System.Reflection.RuntimeAssembly.InternalLoadFrom(字符串 assemblyFile,证据 securityEvidence,Byte[] hashValue, AssemblyHashAlgorithm hashAlgorithm, Boolean for Introspection, Boolean suppressSecurityChecks、StackCrawlMark 和 stackMark) 在 System.Reflection.Assembly.LoadFrom(字符串 assemblyFile) 在 Microsoft.Tools.WindowsInstallerXml.Build.Tasks.WixToolTask.ExecuteToolThread(对象 参数) 0>MSBUILD:错误 MSB4166:子节点“3”过早退出。关闭。诊断信息可在 名为 MSBuild 的临时文件目录*.failure.txt。
但是,在同一台构建机器上,我尝试执行 heat 命令行(由上面的日志生成)并让它正常工作:即 C:\Program Files (x86)\WiX Toolset v3.8\bin\Heat.exe 目录 D:\Builds\32\48\bin\Debug\InstallSrc\WebApp\ -cg CompGrp_WebApp -dr WebApp -ke -scom -sreg -srd -var var.WebAppSrc -v -ag -sfrag -suid -out WebApp_.wxs
我什至尝试过,在 TFS 定义中禁用 MsBuild Multi-Proc(并行构建项目),但没有成功。
为什么它在 TFS 上失败,但在本地却没有?
非常感谢.....
【问题讨论】: