Probleme beim Erstellen von .NET 4.0 auf dem CI-Server

99

Kann jemand .NET 4.0-Anwendungen auf einem CI-Server kompilieren, ohne Visual Studio 2010 auf einem CI-Server zu installieren?

Für .NET 4.0 ist kein SDK vorhanden. Haben .NET 4.0 auf CI Server installiert. Msbuild.exe funktioniert für einfache Projekte und gibt die folgende Warnung aus:

(GetReferenceAssemblyPaths-Ziel) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): Warnung MSB3644: Die Referenzassemblys für das Framework ".NETFramework, Version = v4.0" wurden nicht gefunden. Um dies zu beheben, installieren Sie das SDK oder Targeting Pack für diese Framework-Version oder richten Sie Ihre Anwendung erneut auf eine Version des Frameworks aus, für die Sie das SDK oder Targeting Pack installiert haben. Beachten Sie, dass Assemblys aus dem Global Assembly Cache (GAC) aufgelöst und anstelle von Referenzassemblys verwendet werden. Daher ist Ihre Assembly möglicherweise nicht richtig auf das von Ihnen beabsichtigte Framework ausgerichtet.

DMcKenna
quelle
1
Wie kann ich dies zu einem schwerwiegenden Fehler und nicht zu einer Warnung machen? Es ist in unserem Build-Protokoll versteckt und schlägt stattdessen weiter unten mit einer kryptischen Nachricht über mscorlib.dll
Colonel Panic
Ich habe hier einen ausführlichen Beitrag dazu geschrieben: neelbhatt.com/2018/05/04/…
Neel

Antworten:

128

Sie müssen VS nicht mehr installieren, sondern können jetzt das "Microsoft Windows SDK für Windows 7 und .NET Framework 4" installieren.

http://www.microsoft.com/downloads/details.aspx?displaylang=de&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b

JeremyWeir
quelle
44
Die Standardinstallation ist 1,7 GB, aber die meisten dieser Dateien sind nicht erforderlich. Wenn Sie alles außer .NET Development> Intellisense und Reference Assemblies deaktivieren, erhalten Sie weiterhin das benötigte .NET 4-Targeting-Pack (ca. 450 MB).
Luke Sampson
1
Möglicherweise möchten Sie auch .NET-Entwicklung> Tools überprüfen, da dies mehrere Dienstprogramme wie sn.exe enthält, die für den Umgang mit signierten Assemblys nützlich sind.
Mykro
8
Es gibt auch ein Web-Installationsprogramm, sodass Sie nur die erforderlichen Teile herunterladen müssen. Kann hier heruntergeladen werden: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Obwohl dies als "für Windows 7" bezeichnet wird, sollten die unterstützten Betriebssysteme beachtet werden: Windows 7, Windows Server 2003 R2 Standard Edition (32-Bit x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP Service Pack 3
Aligma
2
Diese Antwort hilft mir. Ich hatte ein anderes Problem bei der Installation von SDK 7.1, das wie hier gezeigt gelöst wurde. Mathworks.com/matlabcentral/answers/95039
ari
23

SDK für .NET 4.5 finden Sie hier . Das Installationsprogramm funktioniert gut mit Proxys mit grundlegender Berechtigung. Unterstützte Betriebssysteme: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS Meine Antwort ist eher ein Kommentar zu Jeremy , aber ich habe nicht genug Ruf, um die Antworten zu kommentieren.

resnyanskiy
quelle
1
Auf der referenzierten Seite: "Das Windows SDK wird nicht mehr mit einer vollständigen Befehlszeilen-Build-Umgebung geliefert. Für das Windows SDK müssen jetzt ein Compiler und eine Build-Umgebung separat installiert werden." Ich gehe also davon aus, dass dies nicht ausreicht, um einen Build-Server auszuführen.
Chris
1
Das hat es für mich behoben. Sie müssen nur die Option ".NET Framework 4.5 Software Development Kit" auswählen, die nur 62,3 MB benötigt und auf einem TFS Build 2013-Server funktioniert, der unter Windows Server 2012 R2 für die Bereitstellung von SharePoint Apps installiert ist. Der FrameworkPathOverride-Parameter muss nicht überschrieben werden.
Koen Zomers
10

andere Alternative: ohne Installation von Net 4.0 SDK oder vs 2010

Kopieren Sie den Ordner für Referenzassemblys von Ihrem Entwicklungscomputer auf den Build-Server (190 MB).

Verwenden Sie die Option msbuild -p: FrameworkPathOverride, um auf den Ordner für Referenzassemblys zu verweisen

Der Standort der Referenzbaugruppen:

C: \ Programme (x86) \ Referenzassemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 oder C: \ Programme \ Referenzassemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

fand dies aus:

Warnungen zu .NET 4.0-Buildserver-Referenzassemblys MSB3644

Wenn Sie die folgende Fehlermeldung erhalten: "Microsoft.WebApplication.targets wurde nicht gefunden" - kopieren Sie einfach das Ziel vom Entwicklungscomputer https://stackoverflow.com/a/5344246/423356

wenn mvc3 nicht auf dem Build-Server installiert ist; "Bereitstellbare Assemblys hinzufügen" zum MVC-Projekt http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Wenn beim Erstellen des MSTest-Projekts ein Fehler aufgetreten ist, ohne dass SDK oder Visual Studio installiert sind; Es gibt mehrere Blog-Beiträge darüber, schade, dass die Lösung für mich zu komplex ist. Ich benutze NUnit anstelle von MSTest

Drachen
quelle
Da mein 2012 Server mich nicht .Net 4 installieren lassen würde, weil das Installationsprogramm sagte, dass es eine höhere Version gibt. Ich habe das getan, was @kite gesagt und von einem PC kopiert hat, auf dem VS 2012 installiert war. Dies löste meine Probleme.
chdev77
0

Diese Seite listet .NET SDKs für jede Visual Studio-Version auf. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Für einen kleineren Download wählen Sie das "Developer Pack" oder "Targeting Pack" anstelle des vollständigen Windows SDK.

Oberst Panik
quelle
Es kann ein allgemeiner Tipp sein, ein Entwicklerpaket oder ein Targeting-Paket zu installieren, aber speziell für .NET Framework 4.0 (bei dieser Frage geht es nur darum) gibt es kein solches Paket, und Windows SDK ist unvermeidlich.
Lex Li