2017-07-10 6 views
2

私はCake(C#Make)で複製しようとしているバッチファイルを持っています。いくつかのプロパティを使用してMSBuildを呼び出します。ここにバッチの行があります。ケーキ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のカウントを指定しているかと関係するかもしれないと思う。私はまた、バッチがそれを行う方法を再構築するためにそれを設定する方法を見つけることができません。

答えて

7

どのようなエラーが表示されますか?あなたは、バッチ例で行うようにあなたは、CPUの数に関しては、この

.WithTarget("Rebuild") 

ようWithTargetを使用してターゲットを設定します再構築する

私はプラットフォームの設定この

.SetMaxCpuCount(System.Environment.ProcessorCount) 

のように設定した場合、私は何の問題を持っていないだろうこのようなものを見てください

.SetPlatformTarget(PlatformTarget.x64) 

設定の詳細は

.SetVerbosity(Verbosity) 

だから、完全なコマンドは、MSBuildの設定の流暢APIメソッドがhereを文書化されている

MSBuild(solution, settings => 
    settings.SetConfiguration("Release") 
     .UseToolVersion(MSBuildToolVersion.Default) 
     .WithTarget("Rebuild") 
     .SetMaxCpuCount(cpuCount) 
     .SetPlatformTarget(PlatformTarget.x64) 
     .SetVerbosity(Verbosity) 
     .WithProperty("OutDir", buildDir) 
     ); 

ようになります。

+0

ありがとうございます!それはまさに私が探していたもののように見えます。私はどこでも.WithTarget()メソッドの例を見つけることができませんでした。私の回避策は、MSBuildタスクが依存していた「クリーン」タスクを作成することでした。これでb​​inフォルダがパージされ、強制的に新しくビルドされました。私はこれがほぼ同じ結果を持っていると考えました。私は.SetMaxCpuCount(0)を使用すると利用可能なプロセッサの最大数を使用することを理解しました。助けてくれてありがとう! – MtnBuckNasty

+0

SetMaxCpuCountを0に設定すると、エージェントで使用可能なCPU数も使用されます。 – Miguel

関連する問題