minato128 blog

minato128の公開メモ帳です。

CI サーバーの MSBuild 14 で MSB3884 がでるのをパラメーターで回避する

"C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe" Test1.sln /nologo /verbosity:m /t:Rebuild  

Visual Studio がインストールされていない CI サーバーで msbuild を実行すると

16:01:58 C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.CSharp.CurrentVersion.targets(133,9): 
warning MSB3884: 規則セット ファイル "ManagedMinimumRules.ruleset" を検出できませんでした。 

こんな警告が出る

github.com

GitHub にこの現象の issue があって、Rule Sets フォルダのファイルをコピーしてレジストリ修正すればよいとある。そもそも CodeAnalysis がしたいわけじゃないのになんだかなあと思って、ソースコードを読んでみたら CodeAnalysisRuleSet パラメーターを空にしたらよさそうだったので、こんな感じで回避した。

"C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe" Test1.sln /nologo /verbosity:m /t:Rebuild /p:CodeAnalysisRuleSet=