2010-12-20 12 views
2

私のC#プログラムは、interopアセンブリを介してCOMコンポーネントを使用します。 COMコンポーネントが時々変更されます(メソッドはインターフェイスの最後に追加されます)。 I need to build this program in an automated build and have the interop assembly incrementing its version number - これはビルド前のステップとしてtlbimpを使用することで実現できます。バージョン番号を変更するinteropアセンブリを追加するにはどうすればよいですか?

問題は、プロジェクトファイル内の参照が、特定のバージョン(たとえば4.0.0.34)に設定されていることです。これは、参照が追加されたときにinteropアセンブリが持つバージョンです。自動ビルドによって数値がインクリメントされ、ビルド前のステップが完了すると、プロジェクトファイルのバージョン番号ストアはアセンブリプロパティの数値と一致しなくなります。

警告MSB3245:これを解決できませんでした参照。アセンブリ "Interop.MyCOMComponent、Culture = neutral、Version = 4.0.0.34、processorArchitecture = MSIL"は見つかりませんでした。アセンブリがディスク上に存在することを確認します。コードでこの参照が必要な場合は、コンパイルエラーが発生することがあります。

、その後

型または名前空間名は「MyCOMComponent」が見つかりませんでした(あなたがusingディレクティブまたはアセンブリ参照が不足している?)

私は何とかビジュアル教えてもらえます私はプロジェクトファイルの中に正確なアセンブリバージョンを保存したくないので、コンパイル時に見えるバージョンを使用する必要があります。

+0

最初にあなたの古い質問を閉じてください。 –

答えて

1

「COM」参照を削除し、通常の「.NET」参照と同じようにinteropアセンブリへの参照を追加することでした。後者にはバージョン番号が格納されていないので、問題は一度解決されました。

1

私は、.csprojファイルでReference要素にSpecificVersionという属性があると考えています。

この属性を削除すると、効果が得られる場合があります。

関連する問題