2015-04-23 11 views
10

Ich möchte ein nugget-Paket mit einer einzigen Datei erstellen. Gibt es eine Möglichkeit, eine einzelne Datei zu packen und dann die Datei anzuweisen, wo sie in einem Visual Studio-Projekt platziert werden soll?Verwenden von nuget-Paket zum Bereitstellen einer einzelnen Datei

Ich konnte eine nuspec-Datei erstellen und ein nugget-Paket verpacken, das die fragliche Datei enthält. Es ist jedoch nicht möglich, sie in einem Paket zu installieren.

Genauer gesagt: Ich habe eine Konfigurationsdatei, die über viele Projekte identisch sein sollte. Ich möchte in der Lage sein, ein nugget-Paket zu installieren, mit dem sie installiert werden können, um die Konfigurationsdatei am richtigen Ort zu platzieren.

Die Nuspec-Datei gibt nur die Grundlagen zu den Metadaten an. Ich führe dann nuget pack mit dieser nuspec-Datei und der Konfigurationsdatei im Verzeichnis aus. Dies führt zu einem nugget-Paket mit der darin enthaltenen Konfigurationsdatei, die nicht deinstalliert werden kann. Hier

ist, was ich in dem nuget Paket habe jetzt:

enter image description here

und die nuspec Datei:

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
    <id>StyleCopSettings</id> 
    <version>1.0.1</version> 
    <title>StyleCopSettings</title> 
    <authors>Clearspan</authors> 
    <owners>Clearspan</owners> 
    <description>StyleCopSettings</description> 
    </metadata> 
</package> 
+0

Bitte senden Sie die nuspec Datei. Fragen ohne eine eindeutige Problembeschreibung und genug Code, um das Problem zu reproduzieren und zu lösen, werden geschlossen - es gibt tatsächlich einen nahen Grund für genau diese Sache. Es gibt keine Frage, ob Sie Dateien bereitstellen können oder nicht - genau das tun Nuget-Pakete per Definition. Entweder haben Sie keinen Zielpfad in Ihrer nuspec angegeben oder der Pfad ist falsch. –

+0

@ PanagiotisKanavos danke, dass Sie mich wissen lassen. Ich habe die zusätzlichen Informationen hinzugefügt, die ich zur Verfügung habe. – Jake

+0

Bitte posten Sie den Inhalt der ** nuspec ** Datei. * That * ist die Definition, aus der das nuget-Paket erstellt wird. Überprüfen Sie [die Dokumente] (https://docs.nuget.org/create/creating-and-publishing-a-package), was ist der Wert des 'target' Attributs Ihres' file' Elements? –

Antwort

6

Das Problem ist, dass Sie die Datei nicht in Frage verweisen in Ihrem Nuspec. Ich habe deine nupec wie folgt bearbeitet.

<?xml version="1.0"?> 
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <metadata> 
    <id>StyleCopSettings</id> 
    <version>1.0.1</version> 
    <title>StyleCopSettings</title> 
    <authors>Clearspan</authors> 
    <owners>Clearspan</owners> 
    <description>StyleCopSettings</description> 
    </metadata> 
    <files> 
     <file src="$pathToYourFile$\styleCopSettings.txt" target="content\Settings" /> 
    </files> 
</package> 

Um eine Datei zu einem Projekt über ein Paket hinzufügen Sie es auf den Inhalt Verzeichnis Ihres Pakets target="content\Settings" hinzufügen. Das Inhaltsverzeichnis eines nugget-Pakets verhält sich wie das Stammverzeichnis des Projekts, in dem das Paket installiert wird (source). Indem wir weitere Verzeichnisse in unserem Ziel angeben, können wir die Datei an einem bestimmten Ort platzieren. Im obigen Beispiel wird die Datei styleCopSettings.txt in das Einstellungsverzeichnis eines Projekts gestellt, das dieses Paket verwendet. Das Einstellungsverzeichnis wird als Teil der Installation hinzugefügt.

Nachdem Sie nuget Pack auf Ihrem nuspec genannt haben, sollten Sie mit so etwas wie dieses

nupkg view

am Ende Wenn Sie das Paket verbrauchen werden Sie mit dem folgenden enden.

example

+1

Das war es - es hat funktioniert. Dass du so sehr! – Jake

+1

Toller Tipp! Der "Inhalt" rettet meinen Tag! Vielen Dank! – GRGodoi

Verwandte Themen