Frage

Verwendung von VS2005 und VB.NET.

Ich habe ein Projekt, das eine API für einen von mir erstellten Datenspeicher ist.Beim Kompilieren wird erstellt api.dll.

Ich habe ein zweites Projekt in derselben Lösung, das einen Projektverweis auf das API-Projekt hat, das beim Kompilieren erstellt wird wrapper.dll.Dies ist im Grunde ein Wrapper für die API, die für eine Anwendung spezifisch ist.Wenn ich es verwende wrapper.dll In dieser anderen Anwendung muss ich kopieren wrapper.dll Und api.dll zu meiner neuen Bewerbung.Wie kann ich das Wrapper-Projekt zum Kompilieren bringen? api.dll in sich selbst, so dass ich nur eins habe dll umziehen?

War es hilfreich?

Lösung

@Jas, es ist eine besondere Funktion in Visual Studio.Das Verfahren ist in beschrieben Dieser Blogeintrag mit dem Titel „Sharing a Strong Name Key File Across Projects“.Das Beispiel dient der gemeinsamen Nutzung von Schlüsseldateien mit starkem Namen, funktioniert aber für jede Art von Datei.

Klicken Sie kurz mit der rechten Maustaste auf Ihr Projekt und wählen Sie „Vorhandenes Element hinzufügen“.Navigieren Sie zum Verzeichnis der Datei(en), die Sie verknüpfen möchten, und markieren Sie die Datei(en).Anstatt einfach auf „Hinzufügen“ oder „Öffnen“ (abhängig von Ihrer Version von Visual Studio) zu klicken, klicken Sie auf den kleinen Abwärtspfeil auf der rechten Seite dieser Schaltfläche.Sie sehen die Optionen „Öffnen“ oder „Datei verknüpfen“, wenn Sie Visual Studio 2003 verwenden, oder „Hinzufügen“ oder „Als Link hinzufügen“ bei 2005 (bei 2008 bin ich mir nicht sicher).Wählen Sie auf jeden Fall diejenige, die das Wort „Link“ enthält.Dann verweist Ihr Projekt im Wesentlichen auf die Datei – sie ist sowohl über das ursprüngliche Projekt, in dem sie sich befand, als auch über das Projekt, mit dem Sie sie „verknüpft“ haben, zugänglich.

Dies ist eine bequeme Möglichkeit, eine Assembly zu erstellen, die alle Funktionen von wrapper.dll und api.dll enthält. Sie müssen jedoch daran denken, diesen Vorgang jedes Mal zu wiederholen, wenn Sie eine neue Datei zu api.dll hinzufügen (jedoch nicht zu Wrapper). dll).

Andere Tipps

Es gibt einen einfacheren Weg.Erstellen Sie einfach Verknüpfungen (in Visual Studio als verknüpfte Dateien bezeichnet) in Ihrem Wrapper.dll-Projekt, die auf die Quelldateien in api.dll verweisen.Dadurch wird Ihre Quelle direkt in wrapper.dll kompiliert.

Sie müssen wahrscheinlich ein Werkzeug verwenden, z ILMerge, um die beiden Baugruppen zusammenzuführen.

Ich denke, Sie könnten api.dll als Ressource in wrapper.dll kompilieren.Greifen Sie dann manuell über api.dll auf diese Ressource zu und laden Sie sie manuell.Ich habe Assemblys manuell von der Festplatte geladen, daher sollte das Laden einer Assembly aus einem Stream nicht anders sein.

Ich würde versuchen, die DLL als Datei in Ihr Projekt einzubinden, ähnlich wie eine Text- oder XML-Datei (zusätzlich zur Projektreferenz zur Kompilierung).Dann würde ich die Build -Aktion auf "eingebettete Ressource" einstellen. In Wrapper.dll würde ich das Montageobjekt verwenden, um wie jede andere eingebettete Ressource auf API.dll zuzugreifen.Anschließend möchten Sie die Assembly auch mit Assembly.Load laden http://msdn.microsoft.com/en-us/library/system.reflection.assembly.load.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top