2017-05-16 1 views
0

Wir haben eine VS 2017-Lösung mit einem Haupt-Webprojekt darin. Wir haben auch 3 andere Web-Projekte - das sind Module, die vom Haupt-Web-Projekt abhängen. Das Haupt-Webprojekt bezieht sich jedoch nicht auf diese Module oder weiß nichts darüber. Wenn die Lösung erstellt wird, kopieren die Module ihre Ausgabe in den Ordner bin des primären Webprojekts. Die Module müssen von der neuesten Version des Hauptprojekts abhängen, daher müssen zuerst Hauptmodule und dann die Module erstellt werden. Das alles funktioniert super lokal - die Website lädt die Module arbeiten etc.WebDeploy Zip erstellen Web-Projekt und nicht referenzierte Module enthalten

Wir verwenden Octopus und Octopack Schritt läuft nach der Lösung und erhält alle Dateien. Wir versuchen, nur VSTS zu verwenden, und haben Probleme, die Moduldateien in eine Standard-Webbereitstellungs-ZIP zu bekommen.

Wenn MSBbuild auf Solution ausgeführt wird, erstellt es eine ZIP-Datei pro Webprojekt. Die Zip-Datei für das Hauptprojekt enthält nicht die Dll-Dateien für die Module (obwohl sie sich im bin-Ordner befinden). Daher fehlen bei der Bereitstellung über die VSTS-Site die Module. Wie sagen wir MSBuild, ein einzelnes Webdeploy-Paket für die Lösung einschließlich der integrierten Module zu erstellen?

Der Befehl MSBuild ist im Grunde das aus der Box ein von VSTS:

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:PackageLocation="C:\temp\web.zip" 

Soweit ich sehen kann MsBuild macht die WebDeploy zip, bevor die anderen Lösung Elemente ihren Inhalt in den Papierkorb-Ordner kopieren. MSBuild ist für mich in den besten Zeiten ein Rätsel.

+0

Ich denke, dies ist weitgehend ein Fall von MSBuild kümmert sich nicht um nicht referenzierte Dateien wie hier https://passiondev.wordpress.com/2013/12/23/azure-website-deployment-additional-dependencies/. Also denke, ich muss nur die Lösung erstellen - dann haben Includes, die von den Dateien in einem zweiten Build abhängig sind - hoffentlich kann das herausfinden – GraemeMiller

Antwort

0

Dies ist nur ein Fall, in dem MSBuild zusätzliche Dateien enthält, die nicht Teil des Projekts sind. Das Pack-Web-Projekt veröffentlicht nur die Dateien, die im Projekt enthalten sind.

Ich aktualisierte Hauptwebprojekt Csproj Datei folgend dem Führer in dieser Frage How do you include additional files using VS2010 web deployment packages?. Ich habe MSBuild einmal ausgeführt, um Solution zu erstellen, so dass Modul-DLL-Dateien verfügbar waren, und ich führte dann MSBuild erneut mit dem Haupt-Webprojekt aus, um die WebDeploy-Ausgabe mit den zusätzlichen Dateien zu erstellen.

Nicht sicher, das ist der beste Weg - scheint ein wenig verschachtelt, nur um einige Dateien hinzuzufügen, aber es funktioniert.

+0

Danke für Ihre Lösung hier, Sie könnten es als die Antwort bis nach einer Gnadenfrist markieren , also könnte es anderen Community-Mitgliedern helfen, die die gleichen Probleme bekommen. –

Verwandte Themen