Minęło trochę czasu, odkąd skonfigurowałem serwer kompilacji, więc może o czymś zapomniałem, a może .NET 4.5 różni się od wersji, w której to robiłem ostatnim razem, ale oto mój problem.
Próbuję skonfigurować serwer kompilacji, aby monitorować repozytorium kontroli źródła. Zawsze, gdy coś się zmieni, chcę, aby serwer ściągnął zmiany i skompilował projekt. Jeśli nie ma błędów, chcę wdrożyć witrynę w witrynie internetowej działającej na serwerze kompilacji.
W przeszłości, kiedy to robiłem, wydawało mi się, że mogę to zrobić mając tylko .NET, ale kiedy próbuję zbudować ten projekt, pojawia się błąd, że „C: \ Program Files \ MSBuild \ Microsoft \ VisualStudio \ v11 .0 \ WebApplications \ Microsoft.WebApplication.targets ”, a jeśli sprawdzę, widzę, że go brakuje. W rzeczywistości nie ma plików docelowych programu Visual Studio 11.
Po wielu przemyśleniach i drapaniu w głowę wyszedłem i dostałem pakiet „Windows 8 / .NET 4.5 SDK”, myśląc, że zestaw .NET 4.5 SDK może zainstalować potrzebne pliki docelowe, ale tak się nie stało, chyba że zainstalowałem go w jakiś sposób nieprawidłowo .
Więc co muszę umieścić na serwerze kompilacji, aby projekt mógł się skompilować. Wolałbym nie instalować pełnego programu Visual Studio 2012.
Odpowiedzi:
Mój problem był związany z instalacją zestawu Windows Software Development Kit (SDK) dla systemu Windows 8 na komputerze z systemem Windows 2008. Jeśli przeczytasz dalej na stronie, dojdziesz do nagłówka oznaczonego „.NET Framework 4.5 SDK Tools w systemie Windows Vista i Windows Server 2008”. To nakazuje:
źródło
Aby działać na serwerze CI bez programu Visual Studio, wystarczy skopiować kilka folderów z maszyny deweloperskiej do tej samej lokalizacji na serwerze CI. Nie ma potrzeby instalowania zestawu SDK.
VS 2015:
VS 2013:
VS 2012:
VS 2010:
.NET 4.6:
.NET 4.5.2:
.NET 4.5.1:
.NET 4.5:
.NET 4.0.1:
.NET 4.0:
Lub, jak zasugerował Matt , możesz skopiować je do podkatalogu projektu i zmienić
<MSBuildExtensionsPath32>
lokalizację w pliku MSBuild (zwykle.csproj
lub.vbproj
).Gdy to zrobisz, twój projekt zostanie skompilowany.
Należy również jawnie ustawić zmienną środowiskową VisualStudioVersion na wersję programu Visual Studio (10,0 dla VS2010, 11,0 dla VS2012, 12,0 dla VS2013, 14,0 dla VS2015), której używasz, aby upewnić się, że jest ustawiona bezpośrednio w konfiguracji.
źródło
Z msdn :
Aby to naprawić, musiałem skopiować folder
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5
z mojego komputera deweloperskiego (który przy okazji ma Visual Studio 2012) do agentów kompilacji. Po tej operacji Team City nie zgłosił więcej błędów, a plik mscorlib.dll nie został wyprowadzony do folderu bin.źródło
W tym przypadku pomogą Microsoft Build Tools 2013 , ponieważ strona pobierania opisuje:
źródło
Mój dział lubi minimalistyczne podejście do tego, co jest zainstalowane na naszych maszynach do kompilacji z systemem Windows 7. Jednak nie lubimy po prostu kopiować i wklejać plików / folderów z powodu potencjalnych problemów z kluczami rejestru. Zamiast instalować VS 2013, zainstalowałem następujące znacznie mniejsze i darmowe komponenty. Teraz zespół programistów może pomyślnie tworzyć aplikacje internetowe VS 2013.
źródło
Microsoft.WebApplication.targets
i nigdy nie wiedziałem o tej izolowanej powłoce!Rozwiązuję ten problem z agentami Visual Studio.
Możesz spróbować zainstalować agentów programu Visual Studio 2012.
http://www.microsoft.com/en-us/download/details.aspx?id=38186
źródło