2015-11-10 26 views
6

Wir versuchen, die neue Toolkette zum Erstellen und Bereitstellen einer CoreCLR-Website von ASP.NET 5 (vNext) für einen Servercluster zu verwenden. Zwischen den Änderungen der neuen Kompilierung und den Änderungen an TFS weiß ich nicht, wie alles jetzt erstellt und bereitgestellt wird. Das Szenario ist wie folgt:ASP.NET 5 (vNext) Bereitstellung über TFS 2015

  1. On-Premise-Steuerung TFS für Quelle und bauen Agent
  2. ASP.NET Targeting 5 unter CoreCLR über IIS gehostet

Fragen sind:

Verwendung TFS für Continuous Integration-Builds (und hoffentlich die Bereitstellung auf einem IIS-Server vor Ort), wie wird dieser neue Anwendungstyp erstellt und bereitgestellt?

Es scheint, dass MSBuild immer noch verwendbar sein kann, um auf eine .sln-Datei zu zeigen, um indirekt dnu.exe aufzurufen, ist das korrekt? Ist das der richtige Weg, dies jetzt zu tun?

Sollten wir stattdessen eine Skript-Erstellungsaufgabe ausführen, um stattdessen dnu.exe auszuführen?

Wie werden diese neuen CoreCLR-Builds bereitgestellt? Nur eine direkte Kopie in ein Verzeichnis auf einem Remote-Computer?

Dies ist eine neue Anwendung und wir verwenden eine mehrschichtige Anwendungsarchitektur, in der sich die DAL- und Geschäftslogik in ihren eigenen CoreCLR-Projekten befinden, wenn dies einen Unterschied macht.

Vielen Dank im Voraus für ein wenig Licht auf die Situation.

Antwort

6

Hier ist, was wir am Ende tun:

  1. Powershell-Skript "prebuild.ps1" nach der vorherige Antwort und Microsoft Deployment-Richtlinien: https://msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/deploy-aspnet5

  2. Vanilla MSBuild bauen. keine Schalter oder spezielle Einstellungen.

  3. Powershell-Skript zum Ausführen von xUnit-Testlauf. Wir haben die Anleitung aus diesem Beitrag unter http://fluentbytes.com/running-xunit-test-with-asp-net-dnx-and-tfs-2015-build/

  4. Powershell-Skript verwendet, um "dnu publish" auszuführen. Dies erstellt ein Verzeichnis der gesamten Webanwendungsstruktur.

  5. Aufgabe "Windows-Dateikopie", um die in # 4 erstellte Verzeichnisstruktur auf allen Zielmaschinen in der Testumgebung bereitzustellen.

1

zu bauen und ASP.NET 5 über TFS2015 vNext Build-System einsetzen, müssen Sie:

1). Erstellen Sie ein PowerShell-Skript (z. B. Prebuild.ps1), um DNX zu installieren. Details des PowerShell-Skripts finden Sie unter: https://msdn.microsoft.com/en-us/Library/vs/alm/Build/azure/deploy-aspnet5. Fügen Sie die Skriptdatei der TFS-Versionskontrolle hinzu.

2). Fügen Sie den Buildschritt für den PowerShell-Skript in die Builddefinition ein. Führen Sie das Skript Prebuild.ps1 in diesem Schritt:

enter image description here

3). Geben Sie im Schritt MSBuild an, dass das Projekt erstellt werden muss, und fügen Sie das folgende/p hinzu: DeployOnBuild = True/p: DeployTarget = MSDeployPublish/p: CreatePackageOnPublish = Wahr/p: MSDeployPublishMethod = InProc/p: MsDeployServiceUrl = localhost/p: DeployIisAppPath = "Standardwebsite/TFSTest1" /p:VisualStudioVersion=14.0 zum Veröffentlichen des Projekts in IIS.

+2

Sorry, aber die Bereitstellung mit Msbuild ist einfach falsch. Es muss einen msdeploy-Schritt geben, der denselben Satz von beförderten Binärdateien annimmt und an das Ziel sendet. Ob parameter.xml oder powershell verwendet werden, um die Konfiguration zu finalisieren, ist akademisch. Gegenwärtig ist Standalone-TFS vNext für eine ordnungsgemäße Versionsverwaltung ungeeignet und einige zusätzliche Elemente wie Octopus Deploy sind erforderlich. –

+0

+1, voll und ganz einverstanden, und ich würde sogar hinzufügen, dass TFS nicht (cl) darauf abzielt, im Release-Management-Raum zu sein, und sollte nicht (ab) als solches verwendet werden. Dies ist der Punkt, an dem release-process-basierte Anbindungen an CI-Build-Systeme zu einem solchen Alptraum für alles andere als eine einfache und einfache Umgebung werden. Hier kommen Werkzeuge wie Octopus Deploy zum Einsatz. –