我正在尝试以编程方式执行 MSBuild,但无法执行以下命令:
string command = string.Format(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe ""{0}\{1}.csproj""", _args.ProjectPath, _args.ProjectName);
该字符串被渲染为:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe "C:\...\TestResults\Foo 2011-08-31 16_29_40\Out\Foo\solutionName\projectName\projectName.csproj"
然后我使用新的 ProcessStartInfo(command)。问题似乎是 Foo 和 2011 之间的空格。我得到以下输出:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: 16_29_40\Out\Foo\solutionName\projectName\projectName.csproj
如何将项目文件传递到 MSBuild?
我强烈建议通过以下类/接口走官方路线Microsoft.Build命名空间。微软到处都使用这个,所以这应该很重要......
特别是。班上Microsoft.Build.Execution.BuildManager和单身人士Microsoft.Build.Execution.BuildManager.DefaultBuildManager
就是您运行构建任务所需的内容...源代码示例:
- http://social.msdn.microsoft.com/Forums/en-US/msbuild/thread/ec95c513-f972-45ad-b108-5fcfd27f39bc/
- 使用 MSBuild 4.0 记录构建消息
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)