COM コンポーネント プロジェクトと、COM コンポーネントを登録する 1 つの Windows セットアップ プロジェクトがあります。セットアップ プロジェクトの以前のビルドを確認したところ、COM プロジェクト内のクラス用に生成された CLSID は常に変更されているようですが、それらのクラスに変更がない場合もあります。同じマシンで異なるバージョンの実装を維持したいので、これはどういうわけか望ましい方法です。ただし、このプロジェクトを手動でビルドし、同じ日に /regfile オプションを指定して regasm.exe を数回実行すると、生成された reg ファイルの CLSID は常に同じになります。以前のケースで変更されたのは、製造された時期が異なるためだと思われますが、よくわかりません。では、この CLSID 自動生成の (既定の) ルールを教えてください。プロジェクトのデフォルト設定を使用していると思います。
アセンブリのバージョンが結果に影響するかどうかはわかりません。ただし、アセンブリのバージョン番号は Major.Minor.* として割り当てます。つまり、3 番目の数字 (ビルド番号) は 1.1.2000 からの日数であり、4 番目の数字 (リビジョン番号) は午前 0 時からの秒数を 2 で割った値です。クラス コードが変わらなくても CLSID が変わる場合、メジャー番号とマイナー番号も同じです。したがって、バージョン番号が CLSID に影響する場合、メジャー番号とマイナー番号だけが考慮されているわけではないことがわかります。
もちろん、これらのクラスには静的 GUID を割り当てませんでした。そうしないと、セットアップ プロジェクトで変更されません。
助けてくれてありがとう!