我正在尝试以编程方式执行 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(命令)。问题似乎是 Foo 和 2011 之间的空格。我得到以下输出:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: 16_29_40\Out\Foo\solutionName\projectName\projectName.csproj
如何将项目文件传递给 MSBuild?
最佳答案
我建议 stronglgy 通过 Microsoft.Build
中的类/接口(interface)走官方路线命名空间。微软到处都在使用它,所以这应该很重要......
特别是类(class)Microsoft.Build.Execution.BuildManager
单例 Microsoft.Build.Execution.BuildManager.DefaultBuildManager
是您运行构建任务所需要的...源代码示例:
关于c# - 以编程方式运行 MSBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7264682/