Problemy z kompilacją .NET 4.0 na serwerze CI

99

Czy ktoś zdoła skompilować aplikacje .NET 4.0 na serwerze CI bez instalowania programu Visual Studio 2010 na serwerze CI?

Brak zestawu SDK dla .NET 4.0. Zainstalowałem .NET 4.0 na serwerze CI. Msbuild.exe działa w przypadku prostych projektów i wyświetla następujące ostrzeżenie:

(Element docelowy GetReferenceAssemblyPaths) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): ostrzeżenie MSB3644: Zestawy referencyjne dla platformy „.NETFramework, Version = v4.0” nie znaleziono. Aby rozwiązać ten problem, zainstaluj pakiet SDK lub pakiet docelowy dla tej wersji platformy lub przekieruj aplikację na wersję platformy, dla której masz zainstalowany pakiet SDK lub pakiet docelowy. Zwróć uwagę, że zestawy zostaną rozwiązane z globalnej pamięci podręcznej zestawów (GAC) i zostaną użyte zamiast zestawów referencyjnych. Dlatego twój zespół może nie być poprawnie ukierunkowany na zamierzoną strukturę.

DMcKenna
źródło
1
Jak mogę uczynić z tego błąd krytyczny, a nie ostrzeżenie? Jest ukryty w naszym dzienniku budowy i zamiast tego nie dalej w dół z jakimś tajemniczym komunikatem o pliku mscorlib.dll
Pułkownik Panic
Napisałem szczegółowy post na ten temat tutaj: neelbhatt.com/2018/05/04/…
Neel

Odpowiedzi:

128

Nie musisz już instalować VS, możesz teraz zainstalować „Microsoft Windows SDK dla Windows 7 i .NET Framework 4”.

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

JeremyWeir
źródło
44
Domyślna instalacja to 1,7 GB, ale większość tych plików jest niepotrzebna. Jeśli odznaczysz wszystko oprócz .NET Development> Intellisense i Reference Assemblies, które nadal będą zapewniać pakiet docelowy .NET 4, którego potrzebujesz (około 450 MB).
Luke Sampson,
1
Możesz również sprawdzić .NET Development> Tools, ponieważ przyniesie to kilka narzędzi, takich jak sn.exe, które są przydatne do obsługi podpisanych zestawów.
Mykro
8
Istnieje również instalator sieciowy, więc wystarczy pobrać potrzebne części. Można pobrać tutaj: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Chociaż nosi to nazwę „dla systemu Windows 7”, warto zwrócić uwagę na obsługiwane systemy operacyjne: 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 z dodatkiem Service Pack 3
Aligma
2
Ta odpowiedź mi pomoże. Miałem inny problem z instalacją SDK 7.1, który został rozwiązany, jak pokazano tutaj mathworks.com/matlabcentral/answers/95039
ari
23

Zestaw SDK dla .NET 4.5 dostępny tutaj . Instalator działa dobrze z proxy z podstawową autoryzacją. Obsługiwane systemy operacyjne: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS Moja odpowiedź jest bardziej jak komentarz do odpowiedzi Jeremy'ego , ale nie mam wystarczającej reputacji, aby komentować odpowiedzi.

resnyanskiy
źródło
1
Ze strony, do której się odwołuje: „Zestaw Windows SDK nie jest już dostarczany z pełnym środowiskiem kompilacji wiersza polecenia. Zestaw Windows SDK wymaga teraz oddzielnej instalacji kompilatora i środowiska kompilacji”. Zakładam więc, że to nie wystarczy do uruchomienia serwera kompilacji.
Chris,
1
To naprawiło to dla mnie. Wystarczy wybrać opcję „.NET Framework 4.5 Software Development Kit”, która wymaga tylko 62,3 MB i działa poprawnie na serwerze TFS Build 2013 zainstalowanym w systemie Windows Server 2012 R2 do wdrażania aplikacji SharePoint. Nie ma potrzeby zastępowania parametru FrameworkPathOverride.
Koen Zomers
10

inna alternatywa: bez instalowania zestawu SDK Net 4.0 lub w porównaniu z 2010

Skopiuj folder zestawów referencyjnych z maszyny deweloperskiej na serwer kompilacji (190 MB).

użyj opcji msbuild -p: FrameworkPathOverride, aby wskazać folder zestawów referencyjnych

położenie zespołów odniesienia:

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 lub C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

znalazłem to z:

Ostrzeżenia dotyczące zestawów odwołań do serwerów kompilacji .NET 4.0 MSB3644

Jeśli pojawi się ten błąd: „Nie znaleziono Microsoft.WebApplication.targets” - po prostu skopiuj cel z maszyny deweloperskiej https://stackoverflow.com/a/5344246/423356

jeśli mvc3 nie jest zainstalowany na serwerze kompilacji; „dodaj zestawy do wdrożenia” do projektu mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Jeśli wystąpi błąd podczas tworzenia projektu MSTest bez zainstalowanego pakietu SDK lub Visual Studio; Jest na ten temat kilka postów na blogu, ale rozwiązanie jest dla mnie zbyt skomplikowane. Używam NUnit zamiast MSTest

latawiec
źródło
Ponieważ mój serwer z 2012 roku nie pozwolił mi zainstalować .Net 4, ponieważ instalator powiedział, że istnieje wyższa wersja. Zrobiłem to, co powiedział @kite i skopiowałem z komputera, na którym był zainstalowany VS 2012. To rozwiązało moje problemy.
chdev77
0

Ta strona zawiera listę zestawów SDK platformy .NET dla każdej wersji programu Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Aby pobrać mniejsze pliki, wybierz „pakiet programisty” lub „pakiet docelowy” zamiast pełnego zestawu Windows SDK.

Colonel Panic
źródło
Może to być ogólna wskazówka, aby zainstalować pakiet deweloperski lub pakiet docelowy, ale w przypadku .NET Framework 4.0 (to pytanie dotyczy) nie ma takiego pakietu i Windows SDK jest nieunikniony.
Lex Li