2016-03-23 23 views
0

Ich versuche, eine vNext-Build-Definition auf TFS 2015 einzurichten (das Projekt ist eigentlich ein .NET 4.6.1-Webprojekt, aber ich möchte das neue TFS verwenden) Build-Setup). Ich habe Schwierigkeiten, eine Dokumentation zu finden, die nur ein bestimmtes Webprojekt in meiner Lösung implementiert (2 Webprojekte, 3 Klassenbibliotheken und nachfolgende Tests).TFS 2015 "vNext" Build für Webprojekt in Lösung

Im XAML-Build-Ansatz würde ich die .sln- und die .csproj-Datei angeben, die für den Build in der Eingabe Prozess> 2. Build> Projekte relevant sind. Der Schritt "Visual Studio Build" lässt mehrere Projekteingaben nicht auf die gleiche Weise zu, und dies scheint der Punkt zu sein, an dem ich feststecke. Wenn ich nur .csproj spezifiziere, werden Nuget-Pakete nicht wiederhergestellt und der Build schlägt fehl.

Gibt es eine Dokumentation zum Bereitstellen eines C# -Webprojekts (.csproj) NUR über diese vNext-Builds?

MSBuild Argumente zuvor in XAML Erstellen verwendet:

/p:AllowUntrustedCertificate=True /p:AuthType=NTLM /p:Configuration=Development /p:DeployOnBuild=True /p:PublishProfile="DEV" /toolsversion:14.0 /p:VisualStudioVersion=14.0 /p:GenerateBuildInfoConfigFile=false 

Die Lösung Ich suche nach würde erreichen die folgenden:

  1. Baut zumindest die Web.csproj mit Projektabhängigkeiten
  2. Stellt Nuget-Pakete wieder her
  3. Wandelt Webkonfigurationen
  4. um
  5. setzt auf Web-Projekt auf zwei separaten Servern (Nicht-Azure!) Über, im Idealfall, Web

Vielen Dank im fortgeschrittenen für jede Hilfe bereitstellen. Hoffentlich ist das möglich!

Hinweis: Ich bin nicht auf Azure und Azure ist keine Option. Ich weiß, dass es für Azure-Benutzer unzählige dokumentierte Anwendungsszenarios gibt, was großartig ist ... aber, ja.

Antwort

1

Sie können einen "NuGet Installer" -Task oben in der Build-Definition hinzufügen, um die Nuget-Pakete für Ihre Lösung wiederherzustellen und den .csproj in Visual Studio Build-Schritt anzugeben. enter image description here

Wenn Sie die gesamte Lösung erstellen möchten, können Sie folgende Argumente in „MSBuild Argumente“ hinzufügen:

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\" 

Dies wird die deploy Pakete für Ihre Projekte separat in „$ (build.artifactstagingdirectory erstellen) Ordner wie folgt: enter image description here

Dann können Sie das Paket für das Projekt auswählen, das Sie bereitstellen möchten. Und mit dem Deploy-Paket können Sie zwei "Befehlszeilen" -Tasks in Ihrer Build-Definition hinzufügen und "Project.deploy.cmd" im Ordner "$ (build.artifactstagingdirectory)" aufrufen, um das Projekt auf Ihren Servern bereitzustellen. Referenz zur Bereitstellung über den Befehl: Executing the Command File. Web.config wird standardmäßig umgewandelt, wenn Sie es richtig konfiguriert haben.

Ich empfehle Ihnen übrigens, Ihre Projekte mit dem Release-Management-System zu implementieren, anstatt sie in Build zu implementieren.

Verwandte Themen