我有一个批处理文件,我试图用Cake(C#Make)复制。它使用一些属性调用MSBuild。这是批次中的行;
"%MSBuildPath%msbuild.exe" ..\public\projectToBeBuilt.sln /t:Rebuild /p:Configuration=RELEASE;platform=%platform% /maxcpucount:%cpucount% /v:%verboselevel%
这些是我需要设置的属性。我觉得它是这样的;
MSBuild(@"..\public\projectToBeBuilt.sln", s=> s.SetConfiguration("Release")
.UseToolVersion(MSBuildToolVersion.Default)
.WithProperty("Verbosity", Verbosity)
.WithProperty("MaxCpuCount", cpuCount)
.WithProperty("Platform", "x64")
.WithProperty("OutDir", buildDir));
我无法完成这项工作。我认为这可能与我如何指定cpu计数有关。我也无法找到任何方法将其设置为Rebuild,就像批处理方式一样。
答案 0 :(得分:10)
你得到什么样的错误?
要像在批处理示例中那样重建,您可以使用WithTarget设置目标
.WithTarget("Rebuild")
关于CPU数量,如果我这样设置,我没有问题
.SetMaxCpuCount(System.Environment.ProcessorCount)
设置平台看起来像这样
.SetPlatformTarget(PlatformTarget.x64)
设置详细程度
.SetVerbosity(Verbosity)
所以完整的命令看起来像
MSBuild(solution, settings =>
settings.SetConfiguration("Release")
.UseToolVersion(MSBuildToolVersion.Default)
.WithTarget("Rebuild")
.SetMaxCpuCount(cpuCount)
.SetPlatformTarget(PlatformTarget.x64)
.SetVerbosity(Verbosity)
.WithProperty("OutDir", buildDir)
);
MSBuild设置的流畅API方法记录在案here。