2011-10-21 22 views
3

私の.netプロジェクトは、自分の開発マシンに登録したCOMタイプライブラリを参照しています(私はこれを制御できません)。 VS2010は、リリースとデバッグの2つの異なる(実際には異なる)オンザフライでinteropアセンブリを生成するようです。 これらはそれぞれ/ obj/Releaseおよび/ obj/Debugフォルダに置かれます。 問題は、COMライブラリがビルドマシンに登録されていないことと、ビルドマシンに登録されるべきでないことです。COMレファレンスで.netプロジェクトを構築する

ここには何がありますか? ソースコントロールの下にinteropアセンブリを持つ/ obj/Release(Debug)フォルダを置くのが好きではありません。もし私がそれをしなければならないなら、私は道を変えたいと思っていますが、それをする方法はありません。

IAを自分で生成するためにtlbimpを使用する必要がある場合、2(デバッグとリリース)バージョンを生成するにはどうすればよいですか?

答えて

4

tlbimp.exeを使用して手動でinteropアセンブリを作成し、実際のCOMライブラリの代わりにそれらのアセンブリを参照できます。つまり、Visual Studioは相互運用アセンブリを生成する必要はなく、それらを完全に制御できます。もちろん、これらをチェックしなければならないでしょうが、どこにでも置くことができます。

編集:相互運用機能アセンブリは、メタデータのみが含まれているので、それが実際Tlbimp.exeをして、「リリース」または「デバッグ」構築に違いはありません、実行可能コードを言わないことです

には、いずれかを指定するオプションがありません。

+0

2つのIAは異なります。これらをdiffツールと比較しました。とにかく答えてくれてありがとう、私はもっと良い選択肢がないと思う。 – Bond

+0

それは面白いです...私は彼らがなぜ違うのか、それが何の原因なのか、その違いはどういうものだろうと思います。 – DeCaf

関連する問題