3

の複製:参照の追加の .NET タブに表示するアセンブリの取得

そのため、私は Visual C# 2008 Express Edition を使用しており、「参照の追加」ダイアログの .NET タブに GAC の内容がリストされているという私の仮定が間違っていることがわかったので、少し回り道をしました。 .

私のプロジェクトから参照したいアセンブリは GAC でのみ利用可能だったので、これは私にとって少し問題でした。(これは、XNA 2.0 再配布から取得した Microsoft.XNA.Framework v2.0 であり、私が確認した限りでは、GAC にのみインストールされていました)。

.csproj ファイルで Microsoft.XNA.Framework への参照を手動で設定し、キャッシュから dll のコピーを取得することで、問題を回避しました。次に、DLL 用のディレクトリを作成し、それをレジストリ内の Visual Studio のアセンブリ ディレクトリのリストに追加すると、出来上がりです! .NET タブで確認できました。

これはすべて私には少しばかげているように思えますが、私の最初の仮定 (.NET タブに GAC の内容が表示される) がそれほど不合理だったり、それほど一般的ではなかったりするとは思いません。私より詳しい人教えてください

  • GAC の内容が表示されないのはなぜですか? ドキュメントにはそうではないと書かれていますが、正当な理由はありますか?
  • 実際に GAC の内容全体を一覧表示する方法はありますか? 私がどこかで見逃したチェックボックス?

どんな情報でも大歓迎です。

4

2 に答える 2

2

.NET タブが GAC を意味すると仮定していますが、そうではありません。これは、インストールされたアセンブリを意味し、GAC にある場合とない場合があります。一部のインストールは Program Files の下にあり、それらのアセンブリは .NET タブに表示されます。

プロジェクトへの参照を追加すると (Web サイト プロジェクトは無視してください。これらはろくでなしの子異常であり、DIAF が必要なためです)、.NET ランタイムは、実行可能ディレクトリで開始されるカスケード検索を使用してそのアセンブリを見つけ、PATH 環境をチェックします。変数であり、GAC で終了します。リンクはありませんが、これを具体的に説明している優れた記事が MSDN に少なくとも 1 つあります。

上記はここでは直接相関していないように見えるかもしれませんが、開発中は開発マシンのどこかにあるアセンブリへの参照を作成できますが、アプリケーションを別のマシンに本番用に配布すると、そのアセンブリは、必ずしも開発マシンと同じ場所にある必要はありません。開発中は、アセンブリをローカルまたは Program Files に置くことができますが、そのアセンブリが GAC にある場合は、別のマシンでプログラムが動作するはずです。

(通常、SDK をインストールすると、インストーラーは .NET タブに dll を表示するために必要なレジストリ エントリを作成するのに十分なほどスマートになります。XNA フレームワークの例は、SDK などの代わりにランタイム パッケージをインストールすることに帰着する場合があります。)

それが役立つことを願っています。

于 2009-05-26T06:14:46.753 に答える
-1

Muse VSReferences 拡張機能をダウンロードして使用します。これはすべて自動的に行われます

s

于 2010-04-29T19:05:48.203 に答える