Heim  >  Artikel  >  Backend-Entwicklung  >  Konfigurieren einer .NET Continuous Integration-Umgebung für Jenkins

Konfigurieren einer .NET Continuous Integration-Umgebung für Jenkins

大家讲道理
大家讲道理Original
2017-01-24 15:43:422931Durchsuche

Ende letzten Jahres haben wir dank der Einführung von Jenkins den ersten Schritt in Richtung kontinuierlicher Integration gemacht. In diesem Artikel wird nicht näher auf die Installation von Jenkins eingegangen .Net-Umgebung. Darüber hinaus basiert dieser Artikel auf der Installation von Jenkins in einer Windows-Umgebung.

1. Installationsumgebung

Zuerst müssen wir mehrere Installationspakete vorbereiten und unter Windows installieren:

.NET Framework 4.6.1 https://www.microsoft.com/zh-cn/download/details.aspx?id=49982
Microsoft Build Tools 2015 https://www.microsoft.com/zh-CN/download/details.aspx?id=48159
.NET Framework 4.6.1 Developer Pack https://www.microsoft.com/zh-CN/download/details.aspx?id=49978
NuGet x86 Commandline https://dist.nuget.org/index.html

Die erste ist natürlich die bekannte .NET Framework-Laufumgebung;

Die zweite ist MSBuild, obwohl wir normalerweise Visual Studio zum Kompilieren verwenden und veröffentlicht Programme, aber tatsächlich ruft Visual Studio MSBuild auf, um verschiedene Vorgänge auszuführen. Wenn wir also möchten, dass Jenkins Code automatisch kompiliert, müssen wir auch einen Satz MSBuild dafür vorbereiten.

Das dritte Paket ist das .NET Framework 4.6.1 Developer Pack, das früher Targeting Pack hieß und eine Reihe von Assemblys enthält. Frühere Versionen von Visual Studio 2013 verfügten beispielsweise nicht über .NET Framework 4.6.1, als es veröffentlicht wurde. Wenn Sie möchten, dass es es unterstützt, müssen Sie dieses Entwicklerpaket installieren. Wenn Sie es nicht installieren, wird beim späteren Kompilieren des 4.6.1-Programms eine Fehlermeldung angezeigt, dass die System.Object- und System.Attribute-Assemblys nicht gefunden werden können. Das 4.6.1 Developer Pack enthält den Inhalt des 4.0-, 4.5- und 4.6-Targeting-Packs. Die Installation des 4.6.1-Pakets erfordert nicht die Installation anderer Versionen von 4.0-Paketen. Wenn Sie außerdem Unterstützung für Chinesisch benötigen, müssen Sie zuerst die englische Version und dann das chinesische Sprachpaket installieren.

Das letzte Element ist das NuGet-Konsolenprogramm. Bevor Sie das Programm kompilieren, müssen Sie NuGet verwenden, um das Paket wiederherzustellen. Diese Software muss nicht installiert werden, sie muss lediglich an einem festen Ort abgelegt werden, beispielsweise unter D:ToolsCI.

2. Installieren Sie das Jenkins-Plug-in

Gehen Sie zur Jenkins-Plug-in-Verwaltungsseite und installieren Sie das MSBuild-Plug-in unter: https:// wiki.jenkins-ci. org/display/JENKINS/MSBuild+Plugin

Geben Sie nach der Installation die Schnittstelle „Globale Toolkonfiguration“ ein:

Suchen Sie die Spalte „MSBuild“ auf der sich öffnenden Seite, klicken Sie zuerst auf „MSBuild-Installation“ und dann auf die Schaltfläche „MSBuild hinzufügen“, um den Pfad von MSBuild.exe zu konfigurieren. Da ich 32-Bit-MSBuild verwende, kann ich es wie folgt konfigurieren:

Standardinstallationspfad von MSBuild

32位 C:Program Files (x86)MSBuild14.0BinMSBuild.exe
64位 C:Program Files (x86)MSBuild14.0Binamd64MSBuild.exe

Vergessen Sie nicht, es nach der Konfiguration zu speichern.

3. Jenkins-Job-Konfiguration

Wenn die laufende Umgebung und das Jenkins-Plug-in bereit sind, erstellen wir einen neuen Job und probieren ihn aus. Unser Unternehmen verwendet Subversion, daher werde ich den Code von SVN und anderen Repositorys herunterladen, was ebenfalls ähnlich ist, daher werde ich es hier überspringen.

1. NuGet-Paket wiederherstellen

Wir müssen einen Schritt „Windows-Batch-Befehl ausführen“ in der Spalte „Erstellen“ hinzufügen, um das NuGet-Paket wiederherzustellen

1 D:\tools\CI\nuget.exe restore .\YourSolutionName.sln

Geben Sie zunächst den Pfad von nuget.exe an und verwenden Sie dann den Wiederherstellungsbefehl, um das Paket der Lösungsdatei YourSolutionName.sln im aktuellen Verzeichnis wiederherzustellen. Sie können es entsprechend Ihrer tatsächlichen Situation ändern.

2. Konfigurieren Sie die MSBuild-Kompilierungsparameter

Erstellen Sie in der Spalte „Build“ ein neues „Visual Studio-Projekt oder eine Visual Studio-Lösung mit MSBuild erstellen“ (generiert mit MSBuild). VS-Projekt oder -Lösung) Schritte

Von oben nach unten in der Reihenfolge:

  • Die ausgewählte MSBuild-Version

  • Der Pfad + Dateiname des Zielprojekts oder der Lösungsdatei

  • MSBuild-Parameter

Hier reden wir hauptsächlich über Konfiguration „Befehlszeilenargumente“. Eine umfassendere MSBuild-Dokumentation finden Sie unter MSDN: https://msdn.microsoft.com/zh-CN/library/dd393574.aspx

Ich hoffe, ein ASP.NET MVC-Projekt zu generieren und im Dateisystem zu veröffentlichen, hauptsächlich mit:

  • /t:Rebuild Rebuild

  • /p:Configuration=Release Build-Modus veröffentlichen

  • /p:VisualStudioVersion=14.0 Unter-Toolset angeben ( https://msdn.microsoft.com/zh-cn/library/bb383796.aspx) Version, wenn nicht festgelegt, wird ein Fehler gemeldet

  • /p:DeployOnBuild =True;PublishProfile=Testing-Environment -CI-publish Verwenden Sie Testing-Environment-CI-publish.pubxml, um die Datei zu veröffentlichen, um das Projekt zu veröffentlichen

4. Ergänzung

[Aktualisiert am 24. Januar 2017 um 09:30]

Leider habe ich das übersehen, als ich den Artikel gestern Abend gepostet habe. Wenn Sie MSBuild verwenden, um das Projekt gemäß der obigen Konfiguration zu kompilieren, kann dieser Fehler auftreten:

Das importierte Projekt „C:Program Files (x86)MSBuildMicrosoftVisualStudiov14.0WebApplicationsMicrosoft.WebApplication.targets“ war nicht vorhanden gefunden

Zu diesem Zeitpunkt müssen Sie nur einen Computer finden, auf dem Visual Studio 2015 installiert ist, und den gesamten Inhalt im Verzeichnis C:Programme (x86)MSBuildMicrosoftVisualStudiov14.0 in das Verzeichnis kopieren Laden Sie es herunter, erstellen Sie es neu und fertig.


Vielleicht wird es später einige Inhalte zu Jenkins integriertem xUnit.net-Unit-Test und der automatischen Veröffentlichung geben, aber ich weiß nicht, ob sie verfügbar sein werden vor Jahren Kann es nicht posten XD

Ich hoffe, der Artikel kann für alle nützlich sein.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn