1

別のプロジェクト (フレームワーク 4.0 C#) dll を使用しているフレームワーク 4.5 (C#) Web アプリ プロジェクトがあります。4.0 プロジェクトは、installshield ルーチンを使用してターゲット サーバーにデプロイされます。したがって、私の 4.5 プロジェクトでは、dll を参照として追加しますが、実際にはその dll を使用したくありません。ターゲットサーバーにインストールされているもの(GACであると想定)を使用したい(必要に応じて4.0 dllプロジェクトを更新できるようにするため)。しかし、4.0 DLL 参照に「ローカルにコピー」を使用しない限り、私の 4.5 Web アプリケーションは機能しません。そのため、4.5 Web アプリの BIN フォルダーに格納されます。

4.0 プロジェクトの DLL には TLB ファイルがありますが、取得しようとすると 4.5 プロジェクトに追加できません。

The "ActiveX type library ".." was not exported from a .NET assembly and cannot be added as a reference.

そのため、参照を介して 4.0 dll を追加し、4.0 dll を選択しています。

dll への参照は、ターゲット サーバーにインストールされたのと同じ場所であり、(4.0 プロジェクトの) 私の開発マシンにインストールされます。

4

2 に答える 2

0

さて、Installshield ルーチンを確認したところ、ターゲットの場所として GAC が設定されていませんでした。私は元々、COM と保存先のローカル フォルダーのみを必要とする非常に古いテクノロジ用にその 4.0 DLL を開発したためです。そのため、IS プロジェクトをやり直す代わりに、フレームワーク (つまり 4.0) を介して展開されていない GAC ユーティリティ (およびそのファイル) に移動しました (なぜ意味がありません)。そして、同じDLLをGACに登録したので、(VS2012で)リソースをローカルに保存する必要はありません。

于 2013-10-07T17:46:56.730 に答える