2009-04-22 12 views
10

Ich versuche, eine Projektvorlage in Visual Studio 2008 zu erstellen, und hatte Erfolg dabei.Benutzerdefinierte DLLs in Visual Studio-Projektvorlage einschließen

Ist es möglich, einige benutzerdefinierten Assemblys in meiner Projektvorlage aufzunehmen, damit ich, wenn ich ein neues Projekt instanziiert keinen Hinweis auf diese Baugruppen hinzufügen müssen? Wenn das möglich ist, wie würde ich das tun?

+3

Um zu klären - es sieht aus wie die OP die Abhängigkeits DLLs in der Projektvorlage Zip-Dateien ASWELL-Code einbinden will, wie sie durch das Projekt verwiesen haben. Ich kämpfe gerade mit mir selbst - weil Visual Studio alle Dateien in der Zip ignoriert, die nicht Elemente in der csproj-Datei sind - daher Artikel nicht den Schnitt machen! Argh! – Adam

+0

... das Verknüpfen der DLLs mit dem Projekt ist eine Möglichkeit, sie durch VS zu extrahieren, wenn der Benutzer eine neue Instanz des Projekts erstellen möchte. Es ist irgendwie hässlich. – Adam

Antwort

0

Ja aktualisieren Sie die Projektdatei in der Vorlage in der ZIP-Datei. Oder verwenden Sie den Export zu Vorlage in vs mit der Referenz bereits enthalten. link text wird dies einfacher machen.

2

Ich musste das selbst tun. Der beste Weg, dies heute zu tun, ist ein nuget-Paket zu erstellen, das all Ihren 'Inhalt' enthält - wie zum Beispiel DLLs. Fügen Sie dann den nugget-Paketassistenten zum WizardExtension-Abschnitt Ihrer vstemplate hinzu und fügen Sie Ihr nuget-Paket (entweder als Referenz auf ein Online-Repository oder die tatsächlich eingebettete .nupkg-Datei) hinzu ...

Ihr nugget-Paket wird gepackt in Ihrer endgültigen VSIX-Datei - so dass alles in eine Visual Studio-Bereitstellung gerollt wird, ist ein einfacher Doppelklick. Was passiert, wenn ein Entwickler ein neues Projekt basierend auf Ihrer Vorlage erstellt, wird die Projektstruktur erstellt, dann erkennt Visual Studio, dass es eine Nuget-Abhängigkeit gibt und Ihr nugget-Paket automatisch in der neuen Vorlage installiert und hinzufügt die entsprechenden Verweise auf das Projekt.

Hier sind ein paar voll konkretisiert Erklärungen, wie dies zu erreichen - Marcins Beispiel eine herunterladbare Zip Beispiel hat (Sie auf den Link in seinen Kommentaren finden):

Kedar R Kulkarni

Marcin Doboz

+0

Wenn Sie also diese (am besten geeignete) Lösung in der Produktion verwenden möchten, sollten Sie eigene nuget feeds/gallery besitzen, die verschiedene andere Vorteile bietet. – mbx

+1

Um den Kommentar von mbx zu verdeutlichen - eine gute Praxis ist es, Ihr Paket in einem Repository veröffentlichen zu lassen - es ist jedoch nicht erforderlich, da Sie Ihre nupkg-Datei (das eigentliche komprimierte Paket) in Ihre Projektvorlage einfügen können . Siehe Marcins Artikel, speziell den Abschnitt „Template-Paket-Repository“ – Adam

+0

Als complementry Quelle: https://docs.microsoft.com/en-us/nuget/visual-studio-extensibility/visual-studio-templates – Ali

0

Kopieren Sie die DLL irgendwo in Ihren Projektordner, fügen Sie die DLL zu Ihrer Lösung hinzu (fügen Sie ein vorhandenes Element hinzu, setzen Sie den Filter manuell auf * .dll) und fügen Sie dann einen Verweis auf diese Kopie in Ihren Projekteinstellungen hinzu. Es sollte in Ihrer exportierten Projektvorlage gespeichert werden, solange Sie dies zuerst tun.

Verwandte Themen