前提
VisualStudio2017で共通モジュールのdllとそれを使用したexeを作成しました。
exeは複数あり、新規に作成もします。
その過程で、共通モジュールを更新したりするのですが、
前回までのビルドの共通モジュールでビルドしたexeに不具合が生じることがあります。
エラー内容はまちまちなのですが、
あるはずのカラム名がない、SQLのパラメータ名が不正などのエラーであることが多いです。
(おそらくそれは、共通モジュールがSQL関連のものであるため)
もちろん最新ビルドで追加したパラメータやカラム名ではありません。
最新ビルドで変更した内容は既に使用しているクラス、関数の変更等ではなく、
新規に関数の追加やEnum項目、変数の追加等です。
上記のエラーはそのままexeをリビルドすると改善されます。
共通モジュールを修正した場合、修正内容にかかわらず、
使用しているexeはすべてリビルドすべきなのでしょうか。
個人的には、既に使用しているexeに影響がある内容(例えば、関数の戻り値の型変更や引数の追加等・・・)でない限り、
最新のdllを見るものだと思っていました。
リビルドすれば改善することから、参照というのはパスだけを見ているのではないのか?と思っています。
ただ、アセンブリ情報でバージョン管理をしているわけではないので、
タイムスタンプ等を見ているのか?という感じなのですが・・・。
試したこと
参照モジュールのプロパティは、
エイリアス:global
ローカルにコピー、相互運用型の埋め込み、特定バージョン:すべてFalse
この辺りが怪しいのでは?と上司に言われ調べてはいます。
あまりピンとは来ていません。
補足情報(FW/ツールのバージョンなど)
VisualStudio2017
C# .Net Framework 4.6
SQLServer2019
また、とある売上管理ソフトの連携APIを使用しています。
回答次第ではこの辺りも調査が必要かと思っています。

回答2件
あなたの回答
tips
プレビュー