6

我有一个批处理文件,我试图用 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 计数的方式有关。我也找不到任何方法将其设置为重建,批处理的方式。

4

1 回答 1

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 方法在此处记录。

于 2017-07-10T21:46:54.680 回答