CI 서버의 .NET 4.0 빌드 문제


99

CI 서버에 Visual Studio 2010을 설치하지 않고 CI 서버에서 컴파일되는 .NET 4.0 응용 프로그램을 얻을 수있는 사람이 있습니까?

.NET 4.0 용 SDK는 없습니다. CI 서버에 .NET 4.0을 설치했습니다. Msbuild.exe는 간단한 프로젝트에서 작동하며 다음과 같은 경고를 표시합니다.

(GetReferenceAssemblyPaths 대상)-> C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9) : 경고 MSB3644 : 프레임 워크 ".NETFramework, Version = v4.0"에 대한 참조 어셈블리 찾을 수 없습니다. 이 문제를 해결하려면이 프레임 워크 버전 용 SDK 또는 Targeting Pack을 설치하거나 SDK 또는 Targeting Pack이 설치된 프레임 워크 버전으로 애플리케이션의 대상을 다시 지정하십시오. 어셈블리는 GAC (전역 어셈블리 캐시)에서 확인되며 참조 어셈블리 대신 사용됩니다. 따라서 어셈블리가 의도 한 프레임 워크를 올바르게 대상으로하지 않을 수 있습니다.


1
경고가 아닌 치명적인 오류로 만들려면 어떻게해야합니까? 빌드 로그에 숨겨져 있으며 대신 mscorlib.dll에 대한 몇 가지 비밀 메시지와 함께 실패합니다.
Colonel Panic

여기에 자세한 게시물을 썼습니다 : neelbhatt.com/2018/05/04/…
Neel

답변:


128

더 이상 VS를 설치할 필요가 없습니다. 지금 "Windows 7 및 .NET Framework 4 용 Microsoft Windows SDK"를 설치할 수 있습니다.

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


44
기본 설치는 1.7GB이지만 이러한 파일 대부분은 필요하지 않습니다. .NET 개발> Intellisense 및 참조 어셈블리를 제외한 모든 항목을 선택 취소하면 필요한 .NET 4 타겟팅 팩 (약 450MB)을 계속 제공합니다.
Luke Sampson 2011 년

1
또한 서명 된 어셈블리를 처리하는 데 유용한 sn.exe와 같은 여러 유틸리티를 가져 오므로 .NET 개발> 도구를 확인할 수도 있습니다.
Mykro

8
웹 설치 프로그램도 있으므로 필요한 부분 만 다운로드하면됩니다. 여기에서 다운로드 할 수 있습니다. microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus

2
이 이름은 "Windows 7 용"이지만 지원되는 운영 체제는 Windows 7, Windows Server 2003 R2 Standard Edition (32 비트 x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2입니다. , Windows Vista, Windows XP 서비스 팩 3
Aligma

2
그 대답은 저를 도와줍니다. 여기에 표시된대로 해결 된 sdk 7.1을 설치하는 다른 문제가 발생했습니다. mathworks.com/matlabcentral/answers/95039
ari

23

.NET 4.5 용 SDK는 여기에서 사용할 수 있습니다 . 설치 프로그램은 기본 인증이있는 프록시와 잘 작동합니다. 지원되는 운영 체제 : Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

추신 : 내 대답은 Jeremy 대답에 대한 코멘트와 비슷 하지만 대답 에 대해 코멘트 할만한 평판이 충분하지 않습니다.


1
참조 페이지에서 : "Windows SDK는 더 이상 완전한 명령 줄 빌드 환경과 함께 제공되지 않습니다. 이제 Windows SDK를 사용하려면 컴파일러와 빌드 환경을 별도로 설치해야합니다." 그래서 나는 이것이 빌드 서버를 실행하기에 충분하지 않다고 가정합니다.
Chris

1
이것은 나를 위해 그것을 고쳤습니다. 62.3MB 만 필요하고 SharePoint Apps 배포 용 Windows Server 2012 R2에 설치된 TFS 빌드 2013 서버에서 제대로 작동하는 ".NET Framework 4.5 소프트웨어 개발 키트"옵션 만 선택하면됩니다. FrameworkPathOverride 매개 변수를 재정의 할 필요가 없습니다.
Koen Zomers 2015 년

10

다른 대안 : Net 4.0 SDK 또는 대 2010을 설치하지 않고

개발 컴퓨터에서 참조 어셈블리 폴더를 복사하여 서버 (190MB)를 빌드합니다.

msbuild -p : FrameworkPathOverride 옵션을 사용하여 참조 어셈블리 폴더를 가리 킵니다.

참조 어셈블리 위치 :

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

다음에서 찾았습니다.

.NET 4.0 빌드 서버 참조 어셈블리 경고 MSB3644

이 오류가 발생하는 경우 : "Microsoft.WebApplication.targets를 찾을 수 없음"-개발자 컴퓨터에서 대상을 복사하십시오. https://stackoverflow.com/a/5344246/423356

mvc3가 빌드 서버에 설치되지 않은 경우; mvc 프로젝트에 "배포 가능한 어셈블리 추가" http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

sdk 또는 Visual Studio를 설치하지 않고 MSTest 프로젝트를 빌드하는 중에 오류가 발생하는 경우 이에 대한 몇 가지 블로그 게시물이 있습니다. 나쁘게도 솔루션이 나에게 너무 복잡합니다. MSTest 대신 NUnit을 사용합니다.


내 2012 서버는 설치 프로그램이 더 높은 버전이 있다고 말했기 때문에 .Net 4를 설치할 수 없었습니다. @kite가 말한 것을하고 VS 2012가 설치된 PC에서 복사했습니다. 이것은 내 문제를 해결했습니다.
chdev77

0

이 페이지에는 각 Visual Studio 버전에 대한 .NET SDK가 나열되어 있습니다. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

작은 다운로드의 경우 전체 Windows SDK 대신 '개발자 팩'또는 '타겟팅 팩'을 선택하십시오.


개발자 팩 또는 대상 팩을 설치하는 일반적인 팁이 될 수 있지만 .NET Framework 4.0 (이 질문에 관한 모든 것)에만 해당되는 팩은 없으며 Windows SDK는 불가피합니다.
Lex Li
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.