VS 2017 빌드 에이전트를 설치하고이를 '기본'에이전트 큐에 등록했습니다. 빌드하려고하는 프로젝트는 .Net 표준 1.0을 대상으로하는 VS 2017 클래스 라이브러리 프로젝트입니다. Visual Studio에서 빌드 할 때 빌드가 성공합니다. 그러나 빌드 에이전트에서 빌드가 실패합니다.Visual Studio 2017 빌드 에이전트가 오류 cs0400으로 빌드하지 못했습니다.
T16 : 05 : 59.0389362Z ## [오류] C : \ WINDOWS \ ServiceProfiles \ NetworkService와 \의 AppData \ 로컬 \ Temp.NETStandard, 버전 = v1.0.AssemblyAttributes.cs (4,20) : 오류 CS0400 : 형식 또는 네임 스페이스 이름 'System'을 전역 네임 스페이스에서 찾을 수 없습니다 (어셈블리 참조가 누락 되었습니까?)
빌드 로그를 로컬 빌드와 비교하면 빌드 에이전트가 호출하는 것을 볼 수 있습니다. 누락 된 '참조'속성이있는 csc.exe 내 프로젝트에는 명시적인 참조가 없습니다. .NET 표준 1.0 라이브러리 (SDK) 만 있으면됩니다. 빌드 에이전트가 사용 명령 줄은 다음과 같습니다
\ MSBuild에서 15.0 \ 빈 \ 로슬린 \ \에는 Csc.exe /에서 noconfig/unsafe-/checked-/nowarn : 1701,1702,1705/nostdlib +/errorreport : 프롬프트/warn : 4/define : TRACE; RELEASE; NETSTANDARD1_0/debug-/debug : portable/filealign : 512/nologo/optimize + /out:obj\Release\netstandard1.0.Geo.Common.dll/ruleset : "C : \ 프로그램 파일 (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ Team Tools \ 정적 분석 도구 \ 규칙 집합 \ MinimumRecommendedRules.ruleset "/ target : library/warnaserror-/utf8output/deterministic + Distance.cs DistanceExtensions.cs GeoCoordinate.cs Unit. cs "C : \ Windows \ ServiceProfiles \ NetworkService \ AppData \ Local \ Temp.NETStandard, 버전 = v1.0.AssemblyAttributes.cs"obj \ Release \ netstandard1.0 \ Geo.Common.AssemblyInfo.cs
빌드 정의에서 빌드 단계의 명령 줄 특성으로 '참조'목록을 하드 코딩 할 수 있다는 것을 알고 있지만 해결 방법입니다. 이 문제를 해결하는 올바른 방법은 무엇입니까?
감사합니다.
UPDATE 는 실패의 이유는 빌드 정의의 이전 단계의 NuGet이이 nuget.exe의 3.5 버전을 사용하고 복원한다는 것을 밝혀졌다. 프로젝트 파일이 VS 2017 형식이므로 nuget.exe는 참조 된 패키지를 찾을 수 없으므로 실제로 아무것도 넣지 않고 성공적으로 완료했습니다. 따라서 다음 단계에서 빌드가 NuGet 패키지로 실패했습니다 (따라서 모든 어셈블리)는입니다.
솔루션
나는 다운로드 nuget.exe 4.0 (here을 발견)와 에이전트의 작업 디렉토리에 저장합니다 (D : \ VsAgentWork \ nuget.exe 내 경우에는). 그런 다음 제공된 위치 (.... \ nuget.exe)에서 nuget.exe를 참조하기 위해 NuGet Restore 단계를 사용자 지정했습니다.
당신이 "기본"큐 말했다 때문에, 당신은 확인할 수 있습니다 그건 당신이 사설 에이전트를 사용하고 있다는 것을 의미합니까? 또는 호스팅 된 풀을 사용하고 있습니까? 또한, 빌드 def에 어떤 작업이 있습니까? VS 빌드 작업? 그렇다면 드롭 다운에서 어떤 버전이 선택됩니까? – bryanmac
또한 VSTS 또는 TFS 2015/2017을 사용하고 있습니까? RTM/QU1? – bryanmac
개인 에이전트를 사용하고 있습니다. VisualStudio.com 온라인입니다. – Artak