Opmerking: In dit artikel is het gebruik van "build", "continuous build", "compile" en "generate" niet rigoureus, weet gewoon wat het betekent.
Allereerst, als je continu wilt bouwen, moet je de opdrachtregel gebruiken. Maar de commando's van dotnet core lijken iets eenvoudiger dan het dotnet framework-project. Omdat het build-commando van dotnetcore dat isdotnet msbuild xxxxx.csproj/yyyyy.sln En het build-commando van het dotnet-framework is.../msbuild.exe xxxx.csproj/yyyyy.sln, en het meest verwarrende onder hen (vooral mensen die nog nooit in een put zijn gevallen, gewoon laten vallen) is ditmsbuild.exeWaar is het precies?msbuild.exe? Na het installeren van de dotnet framework SDK of verschillende versies van Visual Studio in Windows zullen er immers veel zijnmsbuild.exe, mensen begrijpen niet welke ze moeten gebruiken.
Laten we beginnen met hoe je een dotnet-frameworkproject in Windows bouwt, zodat de complexiteit van het project zelf het hoofdidee niet beïnvloedt; hier denken we dat we een eenvoudig consoleproject willen bouwen vergelijkbaar met Hello World. Samengevat, de omgeving: Ontwikkelmachine, Windows-pc; Publicatiemachine, Windows Server; project, een eenvoudig dot net framework consoleproject. (Ik gebruik hier versie 4.5.2)
op
Het is het beste om een nieuw project te initialiseren op een ontwikkelmachine met codebeheer zoals git, zodat het project op andere machines met een netwerk kan worden geklooneerd. Wat je ook schrijft in het project op de ontwikkelmachine, zolang het maar gecompileerd kan worden. Bijvoorbeeld, hello world. Daarnaast wordt aanbevolen om een beetje afhankelijkheid van het nuget-pakket aan het project toe te voegen en te kiezen wat je wilt, zoals log4net-referenties. Probeer het project te compileren op de ontwikkelmachine. (Na vele pogingen werd bevestigd dat de opdrachtregel de msbuild.exe C:\windows\Microsoft .NET\v4.xxx Framework\msbuild.exe\ moest gebruiken bij het compileren van het project.) Het specifieke projecttype is echter nog steeds gebaseerd op het type, kies of je Framework64 kiest of niet, 64, of het v4.xxx is of 3.x, 2.x, deze betekenis is heel eenvoudig, als je het niet begrijpt, is het hulpeloos) Als het project onder het C:\projects\test-pad valt, dan zou het gecompileerde commando moeten zijn:
of
Natuurlijk moet je misschien ook andere parameters meenemen zoals /p:Configuration=Release /p:plotform="Elke CPU", afhankelijk van de situatie.
4. Op de testmachine git-kloon je het project en probeer je het project met hetzelfde commando te compileren met dezelfde opdracht. 5. Als je niet slaagt, moet je blijven proberen de juiste msbuild.exe, het juiste pad, de parameters, enzovoort; zolang er geen probleem is in de omgeving, zul je zeker slagen. 6. Hier komt echter een zeer frustrerende vraag: hoe zit het met nuget-afhankelijkheden? Nu heb ik geen duidelijke problemen met compilen, maar hoe weet ik waar ik het nuget-pakket kan vinden? Deze vraag zit me al lange tijd bij. Ga naar de officiële website van NuGet en download nuget.exe bestand. Na het proberen wordt dit bestand in het project geplaatst (dus in dezelfde map als het SLN- of CSPROJ-bestand) en uitgevoerdnuget.exe herstellenCommando om het benodigde NuGet-pakket te krijgen. Dit is de ervaring die ik heb gekregen na vele pogingen) Je kunt een actie aan het script toevoegen en elke keer het commando nuget.exe restore uitvoeren. Het zou ook wat handiger zijn om nuget.exe toe te voegen aan de omgevingsvariabele (zonder uitleg) en deze elke keer uit te voeren. 7. Tot slot heb ik getest en ontdekt dat het project succesvol gecompileerd kan worden via zulke bewerkingen en commando's op de publicatiemachine. Dit is bijna een ultiem succes. Voor degenen die begrijpen wat jekins zijn, is dit het einde van de zaak, en de rest kan ze zelf doen.
Hieronder
1. Ga naar de officiële website van Jekins, download, installeer, start Jekins, registreer een account, geen uitleg. Voor dotnet-projecten moet je de msbuild-, mstest- en mstestrunner-plugins installeren.
2. Jenkins globale configuratie msbuild.
3. Maak een nieuw project aan en configureer het project
4. Het project bouwen.
In feite is de constructie succesvol en is het eenvoudig om problemen op te lossen, zelfs als het niet lukt.
Sterker nog, over het gebruik van jekins, wordt meer door jezelf geleerd en vaak geprobeerd te begrijpen.
Supplement:
1. Als de VS succesvol kan worden gecompileerd, maar er een niet-ondersteunde syntaxisprompt in de opdrachtregel staat. Dan kan het zijn dat de ontwikkelaar compileert met meer geavanceerde syntaxisregels (hoewel het project gebaseerd is op het .NET-framework 4.5.2), zoals C# 6.0 De releasemachine installeerde alleen het .NET framework 4.5.2, dus ondersteunt deze sommige van de nieuwste syntaxis niet. Installeer in dit geval de nieuwste SDK op de release-machine. Zoals te zien is in de figuur. Officiële Microsoft-website SDK downloaden:https://www.microsoft.com/net/download/visual-studio-sdks Download de bijbehorende SDK. De SDK bevat al Runtime.
2. Als Jekins' taak het Windows bat-commando moet gebruiken om een reeks bewerkingen uit te voeren, dan is het nuttig om Jenkins' "Refer to the list of available environment variables" te gebruiken. Schrijf het als "%WORKSPACE%"
3. Als er ruimte is in het pad, zoals C:\Program Files (x86)\Microsoft.NET, is het noodzakelijk om dubbele aanhalingstekens aan beide zijden van de variabele toe te voegen. Als:
|