指定されたバージョン文字列にワイルドカードが含まれていますが、これは決定性と相容れません。バージョン文字列からワイルドカードを削除するか、このコンパイルで決定性を無効にします

VisualStudio2017をアップデート(15.8.7)した後に、新しいプロジェクトを作って、バージョン番号のところに「1.0.0.*」と設定したら、エラーが出るわけです。



既存のプロジェクトでは「*」を使っていてもビルドエラーにならない。アップデートした後に新しく作ったプロジェクトではエラーになる。なにか変わったみたい。


「*」は自動で番号をあげてくれるので、便利で使っていたのだけど、今後は使ってはいけないの?

アップデートのバグなら、そのうち直るかもしれない。



2018/10/17追記

プロジェクトファイルのどこかが変わっているのだろうとWinDiffで比較してみたら、「Deterministic」という項目が追加されていた。


調べてみると、C#のコンパイラに「-deterministic」というオプションがあって、同じソースコードからは同じバイナリデータのアセンブリを出力するものらしい。

バイナリが同じだからテスト不要という感じで使うのかな。

しかし、このオプションを切り替えする画面がVisualStudioに見当たらないのだけど、どこにあるのだろう???これを使えということなのかしら?

コメント

このブログの人気の投稿

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。