c#.netとして記述しますのでVB.netの場合は適宜置き換えてください。
メインプロジェクト
プロジェクトの「プロパティ」から「アセンブリ情報」
あまり深く考えなくても事故は起きない。
- アセンブリバージョン
- 変更があると更新しています。
- ファイルバージョン
- 変更しても実務的に影響が無いようなのでアセンブリバージョンに合わせています。
ライブラリプロジェクト
プロジェクトの「プロパティ」から「アセンブリ情報」
他の複数の自分のプロジェクトから参照されるので事故が起きやすい。
- アセンブリバージョン
- 破壊的な変更があった際は更新する。
例)クラスやメソッドが追加された。
- 破壊的な変更があった際は更新する。
- ファイルバージョン
- 変更しても実務的に影響が無いようなのでアセンブリバージョンに合わせています。
VS上のデバッグでは変更しなくても問題なく動作してしまいます。
これが後述のインストーラープロジェクトになると事故につながったりします。
インストーラープロジェクト
バージョンを更新すると「ProductCodeを更新するか?」のダイアログボックスが表示されるので更新する。
「ProductCode」を更新しないと・・・。
ライブラリのバージョンが変更されていてもライブラリが追加されず、メインプロジェクトで変更した新ライブラリの資源にアクセスできずにアプリが落ちる可能性がある。
「ProductCode」を更新していると、新バージョンのライブラリがOSに追加され新アプリはそちらのライブラリが参照されるので事故は起きない。
ライブラリをアプリフォルダに保存する設定をしている場合は事故の可能性は下がるかもしれません。
うろ覚えですが、ライブラリは標準でシステムフォルダ内に保存され、ライブラリの旧バージョンは削除されなかったと思います。(そうでないと旧ライブラリを参照する古いアプリに事故が起きるから)
インストーラープロジェクトはこの辺が複雑で覚えるのが大変(たまにしか設定しないのでその気もない)なので私は
RemovePreviousVersions = True
ProductCode を毎回変更(事故防止)
をセットで行っています。
インストーラープロジェクトについては以下も参照していただければ幸いです。
https://h-toss.com/visualstudio2022-installer-project%e3%81%a8%e3%81%af%ef%bc%9f/
