Frage

Ich stelle meine Pakete mit Teamcity und Octopus bereit.Ich erstelle Pakete mit Teamcity und verwende dann Octopus, um sie in verschiedenen Umgebungen bereitzustellen.Ich habe einen Ressourcenordner, der als separater Schritt in Teamcity kopiert werden muss.Jetzt möchte ich, dass dieser Ordner in das Paket aufgenommen wird, damit ich dieses Paket dann auf Remoteservern in anderen Domänen bereitstellen kann.Ich habe die folgende Datei so definiert, dass sie den Ressourcenordner in den Inhaltsordner des Hauptprojekts einfügt.aber was passiert, ist, dass es nur einen Ordner im Ziel erstellt, aber keine anderen Dateien im Projekt kopiert.Bitte führen Sie mich an, da ich nur den Ressourcenordner zusammen mit meinen Veröffentlichungs-Website-Dateien in das Paket aufnehmen möchte.Ich möchte nur, dass der Ressourcenordner Teil des Pakets ist.Bitte führen Sie

 <?xml version="1.0" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <metadata>
<id>Services</id>
<version>1.0.0.0</version>
<authors></authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Services.nuspec build package</description>
<releaseNotes />
 </metadata>
 <files>
  <file src="..\Resources\**\*.*" target="Content\Resources" />
</files>
</package>

Paketinhalt nach dem Erstellen eines Pakets mit dem obigen Code:-

 . _rels
 . package
 . content\resources 
 . [content_type
 . Services.nuspec
War es hilfreich?

Lösung

Wenn Sie OctoPack verwenden, wird dieses Verhalten erwartet.Um das zu zitieren dokumentation auf GitHub:

Wenn die <files> abschnitt vorhanden ist, versucht OctoPack nicht, Ihrem Paket automatisch zusätzliche Dateien hinzuzufügen, daher müssen Sie genau angeben, welche Dateien Sie einschließen möchten.

Wenn Sie diesen Weg einschlagen, müssen Sie alle anderen Dateien angeben, die in der Datei enthalten sein sollen <files> abschnitt der nuspec.

Wenn Sie OctoPack nicht verwenden, gilt eine ähnliche Regel.Sehen dokumentation zu nuget.org

Wenn Sie die unter Erstellen eines Pakets beschriebenen Konventionen befolgen, müssen Sie keine explizite Liste von Dateien in der .nuspec-Datei.Beachten Sie, dass bei der Angabe von Dateien die Konventionen ignoriert werden und nur die Dateien in der .nuspec-Dateien sind im Paket enthalten.

Update

Eine hybride Methode, die ich gesehen habe, besteht darin, das MSBuild-Veröffentlichungsziel zu verwenden, um die Website in einem lokalen Ordner zu erstellen und zu veröffentlichen (um alle Dateien zur Kompilierungszeit herauszufiltern, z. B..cs-Quelle), legen Sie die zusätzlichen Dateien ab und fügen Sie dann einfach ein <file src="**/*.*" /> um alles unter den Stammveröffentlichungsordner zu packen.Erfordert ein wenig Anpassung mit Root-Pfaden / Nuget.exe, aber es kann den Prozess etwas übersichtlicher und etwas wartungsärmer machen.

Nützliche Informationen hier das kann Ihnen beim Einstieg helfen.

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