同僚のCOMDLL(MyLogic.dll)への参照をVisual Studio 2005のC#プロジェクトに追加しました。予想どおり、これにより、出力フォルダーにInterop.MyLogicLib.dllが自動生成されます。ただし、COM DLLのバージョン番号は2.1.0.180ですが、自動生成された相互運用機能アセンブリのバージョン番号は1.0.0.0です。Visual Studioに元のバージョン番号を保持させるにはどうすればよいですか?
現状では、1.0.0.0のバージョン番号は、私の製品のインストールに悲しみを与えています。古いコピーと新しいコピーの両方に1.0.0.0バージョンがあるため、インストーラーは相互運用DLLの以前のバージョンを上書きすることを拒否します。
ちなみに、「tlbimp /asmversion:2.1.0.180 MyLogic.dll」を使用して、コマンドラインでアセンブリを手動で生成しようとしましたが、次のようになりました。
- 私のプロジェクトは、手動で生成されたアセンブリでのビルドを拒否し、使用しているタイプはInterop.MyLogicLib.dllという非参照アセンブリで定義されていると言っています(手動で作成しているものには「Interop」プレフィックスがありません)。 )。認めざるを得ない、私はこれを理解していない。
- ツールにCOMDLLからバージョン番号を読み取らせるのではなく、事前にバージョン番号を知っておく必要があります
- それは手動のプロセスです、それはひどいです
とにかく、確かにVisual StudioはCOMバージョン番号を自動的にコピーできますか?
更新:お詫び; 別の質問を複製したようです。私は最初に既存のものを検索しました、正直なところ。私はそれを逃した。:(