[C#] Visual Studio 2019で CS8357コードのエラーが発生した時に対処法

目次
はじめに
Assembly情報のAssemblyVersionにワイルドカードを使用した場合、下記の様なエラーが発生した。
指定されたバージョン文字列には、決定性と互換性のないワイルドカードが含まれています。バージョン文字列からワイルドカードを削除するか、このコンパイルの決定性を無効にしてください。
英文では下記の通り
The specifed version string contains wildcards, which are not compatible with determinism. Either remove wildcards from the version string, or disable determinism for this compilation
いままでは、普通に利用できていたのですが、急遽できなくなりました。
今回エラーが発生した環境は下記の通りです。
製品 | Microsoft Visual Studio Professional 2019 |
---|---|
Version | 16.5.4 |
.NET Framework | 4.7.03190 |
どのバージョンからか分かりませんが、仕様変更があったようです。
対処策
1) .csprojファイルを開きます。
2) 下記の「Deterministic」要素の値をtrueからfalseに切り替え保存します。
<PropertyGroup>
・・・中略
<AutoGenerateBindingRedirects>true<AutoGenerateBindingRedirects>
<Deterministic>false</Deterministic>
</PropertyGroup>
3) ソリューションのプロジェクトが「アンロード」されていますので、「再読み込み」などで再度プロジェクトを読み込みます。
4) エラーが消えていることが分かります。
最後に
アップデートには気をつけた方が良いですね。
UIで設定を変更できる様にしてもらいたいところです。
参考
The specified version string contains wildcards, which are not compatible with determinism
CS8357: The specified version string contains wildcards, which are not compatible with determinism.