Laden...

Build mit Jenkins funktioniert nicht: kein .NET Framework

Erstellt von WLemmy vor einem Jahr Letzter Beitrag vor einem Jahr 756 Views
W
WLemmy Themenstarter:in
7 Beiträge seit 2014
vor einem Jahr
Build mit Jenkins funktioniert nicht: kein .NET Framework

Servus,

wir haben hier einen Jenkins am Laufen dem ich aktuell c#-Bauen bei bringe. MSBuild setzen wir schon länger ein. Ich habe 2 Projekte die ich mit c# bauen lassen will. Beide Projekte lassen sich mit msbuild auf der Kommandozeile an dem Rechner ohne weitere Einstellungen bauen:

MSBuild.exe x.sln /p:Configuration=Release
MSBuild.exe y.sln /p:Configuration=Release

wenn ich das selbe in meiner Buildpipeline durch den jenkins machen lasse, funktioniert x.sln wie gewünscht, bei y.sln erhalte ich aber den Fehler:


ValidateSolutionConfiguration:
  Die Projektmappenkonfiguration "Release|Any CPU" wird erstellt.
It was not possible to find any installed .NET SDKs.
Install a .NET SDK from:
  [url]https://aka.ms/dotnet-download[/url]

MSBuild verwenden wir die 2022 Version.

Hat jemand eine Idee, an was das grundsätzlich liegen könnte, dass Jenkins von jetzt auf nachher kein .net sdk findet?

Grüße
Lemmy

D
261 Beiträge seit 2015
vor einem Jahr

Sind beides .NET Framework Projekte? Oder ist eines vielleicht ein .NET Core/5/6/Standard Projekt?

Kenn mich mit Jenkins nicht aus, aber gibt es da kein Debug Mode, damit die Aufrufe inkl. Parameter im Log landen?

W
WLemmy Themenstarter:in
7 Beiträge seit 2014
vor einem Jahr

oh sorry,

sind beides für .net 4.8. Bei
x.sln: <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
y.sln: <TargetFramework>net48</TargetFramework> (die nicht funktioniert)

welche Parameter brauchst du? von msbuild? da ist auser der Configuration:Release nichts weiter angegeben...

D
261 Beiträge seit 2015
vor einem Jahr

Dann ist das y-Projekt im neuen SDK-Format. (siehe Übersicht: .NET SDKs für Projekte (Projektdateien))
Ich vermute, dass MsBuild die Projektdatei dann an "dotnet build" übergeben möchte und deswegen auf einen Fehler stößt, weil das .NET SDK nicht installiert ist.
Warum der manuelle Aufruf durch die Kommandozeile funktioniert, könnte folgende Unterschiede haben:

  • Unterschiedliche MsBuild Versionen (z. B. durch unterschiedliche PATH Variablen bei Jenkins vs. Benutzer)
  • Umgebungsvariablen die das Verhalten von MsBuild steuern

Kann sonst nicht wirklich weiterhelfen, aber vielleicht hilft das beim Recherchieren.

PS: Als Workaround könntet ihr natürlich auch einfach das .NET SDK auf der Jenkins Maschine installieren.

16.806 Beiträge seit 2008
vor einem Jahr

Tjo, das kommt davon, wenn man nich eine Minute in die Docs investiert 🙂

Das eine ist das alte Projektformat, das andere das neue Projektformat, das man primär mit der .NET CLI baut - und nicht direkt per MSBuild.

W
WLemmy Themenstarter:in
7 Beiträge seit 2014
vor einem Jahr

Dann ist das y-Projekt im neuen SDK-Format.

Danke

Kann sonst nicht wirklich weiterhelfen, aber vielleicht hilft das beim Recherchieren.

auf jeden Fall.