9

サーバーの一部を .net 4.0 に移行しています。最初のステップとして Vs2010 への移行は既に行いましたが、どのプロジェクトのターゲット フレームワークも変更していません。

2 番目のステップとして、サーバーの特定の部分をターゲット 4.0 に移動して、新しい機能の一部を使用できるようにします。

4.0 を対象とするクラス ライブラリ DLL で TLBexp.exe を呼び出すときに問題が発生しました。この DLL は、2.0 を対象とする多くの DLL も参照しています。

次のエラーが表示されます: TlbExp : エラー TX0000: ファイルまたはアセンブリ 'file:Library.dll' またはその依存関係の 1 つを読み込めませんでした。このアセンブリは、現在読み込まれているランタイムよりも新しいランタイムによってビルドされているため、読み込むことができません。

付属の TLBExp を呼び出しています: Microsoft SDKs\Windows\v7.0A\bin\ VS2010 コマンド プロンプトで呼び出すコマンドで、v4.0.30319 バイナリ (mscorlib.tlb など) を参照します。

2.0 ライブラリを参照する 4.0 DLL で TLB を実行することは許可されていますか? はいの場合、このエラーが発生する理由は何か。

私が使用する正確なコマンド コールは次のとおりです。 v4.0.30319\mscorlib.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.tlb" /tlbreference:"C:\Windows\Microsoft.NET\Framework\v4.0.30319\ System.Windows.Forms.tlb" /tlbreference:"C:\Windows\system32\stdole2.tlb" C:\Dev\Library.dll

ありがとう

4

2 に答える 2

20

4.0 をターゲットとするアセンブリがあり、それは 3.5 のターゲット フレームワークを持つ別のアセンブリを参照していました。

その結果、「ビルド後」のステップで同じエラーが発生していました。試行錯誤の結果、このフォルダーにあるバージョンの TLBExp でC:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\TLB ファイルを正常に生成できることがわかりました。

チッ!

于 2011-04-19T02:03:46.127 に答える
7

You can use the following path to TlbExp, which will be picked up automatically based on project framework version:

$(TargetFrameworkSDKToolsDirectory)\tlbexp.exe
于 2012-09-19T17:37:08.867 に答える