有没有更好的方法从C#/ .NET调用MSBuild而不是shelling到msbuild.exe?如果有,怎么样?
我试图以编程方式执行msbuild并且无法执行以下命令:
string command = string.Format(@"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe ""{0}\{1}.csproj""", _args.ProjectPath, _args.ProjectName);
Run Code Online (Sandbox Code Playgroud)
字符串呈现为:
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"
Run Code Online (Sandbox Code Playgroud)
然后我使用新的ProcessStartInfo(命令).问题似乎是Foo和2011之间的空间.我得到以下输出:
MSBUILD : error MSB1008: Only one project can be specified.
Switch: 16_29_40\Out\Foo\solutionName\projectName\projectName.csproj
Run Code Online (Sandbox Code Playgroud)
如何将项目文件传递给msbuild?
任何人都知道任何好的MSBuild任务将执行PowerShell脚本并传递不同的参数?
我能够找到B#.NET博客:从MSBuild调用PowerShell脚本,但我希望有一些更精致的东西.
如果我找不到任何东西,我当然会继续使用该博客作为首发来磨练自己.