これは、多かれ少なかれ、このプロセスをよりよく理解するのに役立つ学問的な質問です...バイナリ互換性を回避する方法を理解するための要求ではないので、これを試してはいけない理由を説明する必要はありません:)
パブリック メンバーを持たない vb6 で dll を作成してコンパイルするとします。実際には、少なくとも 1 つがないとコンパイルできない可能性があると思います。つまり、1 つのパブリック メソッドを作成するとします。ただし、それは dll がコンパイルされるようにするためだけのものであり、それ以外の場合は無視します。
ここで、プロジェクトの互換性をこの dll に設定するとします。どのような状況でも、この dll を更新したり、互換性を更新されたバージョンの dll に変更したりすることは決してありません。
このシナリオでは、vb6 がこれらの互換性を破るエラー メッセージをスローすることはなく、実際に互換性を破った場合でも、コンパイルごとに dll に同じ UUID を使用し続けると考えています。
ただし、そのdllで作成するクラスに対して生成される値は、毎回変わると思います。また、その dll をコンパイルするための互換性の問題は発生しませんが、最終的には、この dll を参照するプロジェクトの互換性の問題が発生します。
それは正しいと思いますか?