web-dev-qa-db-ja.com

Visual StudioからGAC内のdllを参照するにはどうすればよいですか?

このアセンブリはGACにあります:Microsoft.SqlServer.Management.RegisteredServers.dll

Visual Studioでこのアセンブリへの参照を追加するにはどうすればよいですか?

C:\ windows\Assembly \でファイルを表示できます

48
yankman

他の人が言ったように、ほとんどの場合、アセンブリはプロジェクトにコピーされず、プロジェクトと共に展開されないため、これを行いたくないでしょう。ただし、あなたが私のようで、すべてのターゲットマシンがGACに持っているが.NET Frameworkアセンブリではない参照を追加しようとしている場合:

  1. Windowsの[実行]ダイアログを開きます(Windowsキー+ r)
  2. C:\ Windows\Assembly\gac_msilと入力します。これは、GACを閲覧できる奇妙なハックの一種です。実行ダイアログからのみアクセスできます。この情報を広めても、最終的にマイクロソフトがパッチを適用してブロックすることはありません。 (偏執すぎる?:P)
  3. アセンブリを見つけて、アドレスバーからそのパスをコピーします。
  4. Visual Studioで[参照の追加]ダイアログを開き、[参照]タブを選択します。
  5. GACアセンブリへのパスを貼り付けます。

もっと簡単な方法があるかどうかはわかりませんが、見つかりませんでした。また、手順1〜3を頻繁に使用して、GACアセンブリと共に.pdbファイルを配置し、後でリモートデバッガを使用する必要があるときに失われないようにします。

55
xr280xr

完全に無料のツールを作成しました。これは、目標を達成するのに役立ちます。 Muse VSReferencesを使用すると、[GAC参照の追加]メニュー項目からプロジェクトにグローバルアセンブリキャッシュ参照を追加できます。

これがお役に立てば幸いです Muse VSExtensions

14
BALKANGraph

アセンブリをGACに登録しても、参照の追加ダイアログにアセンブリへの参照は配置されません。プロジェクトのパスでアセンブリを参照する必要があります。主な違いは、ローカルコピーオプションを使用する必要がないことです。アプリは実行時にそれを見つけます。

この特定のケースでは、パスで参照(参照)するだけでアセンブリを参照するか、参照の追加ダイアログで本当にそれを保持したい場合は、追加のパスを追加できるレジストリ設定があります。

このアセンブリをインストールしていない人にアプリを出荷する場合は、アプリを出荷する必要があります。この場合、SharedManagementObjects.msi再頒布可能パッケージを実際に使用する必要があります。

13
Tim Jarvis

VS2010では、[レレンスの追加]ウィンドウから[参照]をクリックし、C:\ Windows\Assemblyに移動して、必要なアセンブリへの参照を追加できます。ファイルは、GAC、GAC_32、GAC_64、GAC_MSILなどのさまざまなフォルダーにグループ化される場合があることに注意してください。

7
Manesh

VSで、プロジェクトを右クリックし、[参照の追加...]を選択すると、GACに存在するすべてのネームスペースが表示されます。 Microsoft.SqlServer.Management.RegisteredServersを選択して[OK]をクリックすると、準備完了です。

編集:

それがほとんどの場合これをしたい方法です。しかし、少し調べてみたところ、MS Connectで この問題 が見つかりました。 MSによると、これは既知の展開の問題であり、回避策はありません。男は、GACフォルダーからdllをコピーしてビンに落とすと動作すると言います。

5
Matt Briggs

私のために働いた唯一の方法は、デスクトップまたは何かにdllをコピーし、それに参照を追加し、デスクトップからdllを削除することです。 Visual Studioはそれ自体を更新し、最終的にGACからdllを参照します。

4
Ahmed IG

上記で説明したように、「参照を追加...」を試みたが成功しなかったと仮定すると、 here に見えます。いくつかの前提条件を満たしている必要があると彼らは言います。-.NET 3.5 SP1-Windows Installer 4.5

編集:これによれば post は既知の問題です。

そして、 this はあなたが探している解決策かもしれません:)

3
Stefano Driussi

答えるには遅すぎるかもしれませんが、これを行う非常に簡単な方法を見つけました(ハックなし)。

  1. Dllを[〜#〜] gac [〜#〜]に入れます(3.5の場合、ドラッグドロップ内部 "C:\ Windows\Assembly \"))
  2. GoToプロジェクト->プロパティ
  3. 参照パス(3.5の場合は "C:\ Windows\Assembly \")をクリックします
  4. とビルド

それが役に立てば幸い

1
Vinod Srivastav

VS 2013でこの拡張機能を見つけました Vitevic GAC Reference

0
Devlin

関連するファイルと参照は次の場所にあります。

http://msdn.Microsoft.com/en-us/library/cc283981.aspx

Implementation/etcについてのリンクに注意してください。

0
winwaed