はじめに
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に切り替え保存します。
・・・中略
true
false
3) ソリューションのプロジェクトが「アンロード」されていますので、「再読み込み」などで再度プロジェクトを読み込みます。
4) エラーが消えていることが分かります。
最後に
アップデートには気をつけた方が良いですね。
UIで設定を変更できる様にしてもらいたいところです。
参考
- Visual studio. AssemblyVersion with * don’t work
- 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.