5

ネイティブ C++ COM オブジェクトを使用する C# プログラムがあります。Visual Studio は、COM オブジェクトの型のラッパーを使用して相互運用アセンブリを生成します。C# プログラムを再コンパイルするたびに、interop アセンブリのバージョンは 1.0.0.0 になります。

これはインストーラーにとっては悪いことです。COM オブジェクト インターフェイスを拡張する (一部のインターフェイスの最後に新しいメソッドを追加する) 場合があるため、相互運用アセンブリを変更する必要があります。インストーラーが既存のインストールを更新しようとすると、interop アセンブリが変更されていないと見なされ (バージョン 1.0.0.0 のままであるため)、更新がスキップされ、プログラムが動作しません。

相互運用アセンブリに割り当てられたバージョン番号を制御するにはどうすればよいですか?

4

1 に答える 1

2

少し経ちましたので、これがどのように機能するかを間違って覚えているかもしれませんが、VSにラッパーを作成させるのではなく、Tlbimpを使用すれば、やりたいことができるかもしれないと思います。

おそらく、asmversionパラメーターを使用してそれを行うことができます。そうでない場合は、パラメーターを使用して厳密な名前を付けると可能になる可能性がありkeyfileます。

于 2010-12-13T15:05:29.447 に答える