it-swarm.com.de

Wie kann ich in GAC von Visual Studio aus auf eine DLL verweisen?

Diese Assembly befindet sich im GAC: Microsoft.SqlServer.Management.RegisteredServers.dll

Wie kann ich in Visual Studio einen Verweis auf diese Assembly hinzufügen?

Ich kann die Datei in c:\windows\Assembly\anzeigen.

48
yankman

Wie die anderen bereits sagten, möchten Sie dies meistens nicht, weil sie die Assembly nicht in Ihr Projekt kopieren und nicht in Ihrem Projekt bereitstellen können. Wenn Sie jedoch wie ich sind und versuchen, einen Verweis hinzuzufügen, den alle Zielcomputer in ihren GAC enthalten, der jedoch keine .NET Framework-Assembly ist:

  1. Öffnen Sie das Windows-Dialogfeld "Ausführen" (Windows-Taste + r).
  2. Geben Sie C:\Windows\Assembly\gac_msil ein. Dies ist eine Art seltsamer Hack, mit dem Sie Ihre GAC durchsuchen können. Sie können es nur über den Ausführungsdialog erreichen. Ich hoffe, dass das Verbreiten dieser Informationen nicht dazu führt, dass Microsoft sie irgendwann korrigiert und blockiert. (Zu paranoid?: P)
  3. Finden Sie Ihre Assembly und kopieren Sie ihren Pfad aus der Adressleiste.
  4. Öffnen Sie das Dialogfeld "Referenz hinzufügen" in Visual Studio und wählen Sie die Registerkarte "Durchsuchen".
  5. Fügen Sie den Pfad zu Ihrer GAC-Assembly ein.

Ich weiß nicht, ob es einen einfacheren Weg gibt, aber ich habe ihn nicht gefunden. Ich verwende auch häufig Schritt 1-3, um .pdb-Dateien in ihren GAC-Assemblys zu platzieren, um sicherzustellen, dass sie nicht verloren gehen, wenn ich später Remote Debugger verwenden muss.

54
xr280xr

Ich habe ein Tool erstellt, das völlig kostenlos ist und Ihnen helfen wird, Ihr Ziel zu erreichen. Mit Muse VSReferences können Sie über das Menüelement GAC-Referenz hinzufügen einen globalen Assembly-Cache-Verweis hinzufügen.

Hoffe das hilft Muse VSExtensions

14
BALKANGraph

Durch das Registrieren von Assmblies im GAC wird im Dialogfeld "Referenzen hinzufügen" kein Verweis auf die Assembly eingefügt. Sie müssen immer noch die Assembly nach Pfad für Ihr Projekt referenzieren. Der Hauptunterschied besteht darin, dass Sie nicht die Option zum Kopieren lokal verwenden müssen. Ihre Anwendung wird sie zur Laufzeit finden.

In diesem speziellen Fall müssen Sie nur über den Pfad (Durchsuchen) auf Ihre Assembly verweisen. Wenn Sie dies wirklich im Dialogfeld "Referenz hinzufügen" wünschen, gibt es eine Registrierungseinstellung, in der Sie zusätzliche Pfade hinzufügen können.

Wenn Sie Ihre App an jemanden versenden, der diese Assembly nicht installiert hat, müssen Sie sie versenden. In diesem Fall müssen Sie wirklich die SharedManagementObjects.msi Redistributable verwenden.

13
Tim Jarvis

In VS2010 können Sie im Fenster "Referenzen hinzufügen" auf "Durchsuchen" klicken, zu C:\Windows\Assembly navigieren und Referenzen zu den gewünschten Assemblys hinzufügen. Bitte beachten Sie, dass die Dateien in verschiedenen Ordnern wie GAC, GAC_32, GAC_64, GAC_MSIL usw. gruppiert werden können.

7
Manesh

Klicken Sie in VS mit der rechten Maustaste auf Ihr Projekt, wählen Sie "Verweis hinzufügen ..." aus, und Sie sehen alle in Ihrem GAC vorhandenen Namespaces. Wählen Sie Microsoft.SqlServer.Management.RegisteredServers aus und klicken Sie auf OK. Nun sollten Sie sich auf den Weg machen

BEARBEITEN:

Das ist die Art und Weise, wie Sie dies meistens möchten. Nach einigem Stöbern fand ich dieses Problem auf MS Connect. MS sagt, es handelt sich um ein bekanntes Bereitstellungsproblem, und es gibt keine Problemumgehung. Der Typ sagt, wenn er die dll aus dem GAC-Ordner kopiert und in seine Ablage legt, funktioniert es. 

5
Matt Briggs

Der einzige Weg, der für mich funktioniert hat, ist das Kopieren der DLL in Ihren Desktop oder etwas anderes, fügen Sie einen Verweis hinzu und löschen Sie die DLL von Ihrem Desktop. Visual Studio aktualisiert sich selbst und verweist schließlich auf die DLL aus dem GAC in sich.

4
Ahmed IG

Vorausgesetzt, Sie haben bereits versucht, "Referenz hinzufügen", wie oben beschrieben, und es war nicht erfolgreich, können Sie hier nachschlagen. Sie sagen, dass Sie einige Voraussetzungen erfüllen müssen: - .NET 3.5 SP1 - Windows Installer 4.5

BEARBEITEN: Laut post handelt es sich um ein bekanntes Problem.

Und das könnte die Lösung sein, nach der Sie suchen :)

3
Stefano Driussi

Vielleicht ist es zu spät, um zu antworten, aber ich habe einen sehr einfachen Weg gefunden, dies zu tun (ohne einen Hack).

  1. Legen Sie Ihre DLL inGAC(für 3,5 Drag Drop in "C:\Windows\Assembly \")
  2. Gehe zu Projekte -> Eigenschaften
  3. Klicken Sie auf Reference Path (für 3.5 ist es "C:\Windows\Assembly \")
  4. und bauen

Ich hoffe es hilft

1
Vinod Srivastav

Ich habe diese Erweiterung für VS 2013 Vitevic GAC Reference gefunden.

0
Devlin

Die relevanten Dateien und Referenzen finden Sie hier:

http://msdn.Microsoft.com/de-de/library/cc283981.aspx

Beachten Sie die Links darüber zur Implementierung/etc.

0
winwaed