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.