使用MSBuild API 15.9.20

时间:2018-12-18 08:05:58

标签: msbuild wix

我在一个项目中使用了wix,我有一个特殊的需求:

使用c#中的MSBuild构建wixproj。

为此,我将MSBuild api用于以下用途:

静态void Main(string [] args)         {             字符串toolsPath = ToolLocationHelper.GetPathToBuildToolsFile(“ msbuild.exe”,ToolLocationHelper.CurrentToolsVersion);             ProjectCollection projectCollection =新的ProjectCollection();             projectCollection.AddToolset(新工具集(ToolLocationHelper.CurrentToolsVersion,Path.GetDirectoryName(toolsPath),projectCollection,string.Empty));             项目项目= projectCollection.LoadProject(“ TestWix.wixproj”);             var result = project.Build(new ConsoleLogger());             Console.ReadKey();         }

我收到此错误:

C:\ Program Files(x86)\ MSBuild \ Microsoft \ WiX \ v3.x \ wix2010.targets(1988,5):错误MSB4127:无法从程序集“ C:\”实例化“ GenerateCompileWithObjectPath”任务程序文件(x86)\ WiX Toolset v3.11 \ bin \ WixTasks.dll”。请验证任务程序集是使用与计算机上安装的版本相同的Microsoft.Build.Framework程序集构建的,并且您的主机应用程序没有缺少Microsoft.Build.Framework的绑定重定向。无法将类型为“ Microsoft.Tools.WindowsInstallerXml.Build.Tasks.GenerateCompileWithObjectPath”的对象转换为类型为“ Microsoft.Build.Framework.ITask”的对象。

但是当我使用msbuild命令行时,它工作正常。

请问您有什么主意吗?

谢谢。

0 个答案:

没有答案