[msbuild] 빌드 서버에서 Microsoft.WebApplication.targets를 찾을 수 없습니다. 당신의 해결책은 무엇입니까?

빌드 서버에서 프로젝트를 빌드하려고하면 다음 오류가 발생합니다.

Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

몇 달 전에 Build Server에 Visual Studio 2010을 설치하여이 문제를 해결했습니다. 그러나 이제 처음부터 새 서버를 설정하고 있으며이 문제를 해결하는 더 나은 솔루션이 있는지 알고 싶습니다.



답변

질문의 제목에 답하려면 (그러나 얻는 결과에 대한 질문은 아님) :

웹 응용 프로그램 인 경우 개발자 컴퓨터에서 빌드 서버로 다음 폴더를 복사하면이 문제가 해결됩니다.

C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications

빌드가 깨지는 방식에 따라 x86을 제거하십시오. 다른 프로젝트 유형이있는 경우 전체 msbuild 폴더를 복사해야합니다.


답변

VS가 설치되어 있지 않으면 WAP 빌드 및 게시가 지원되지 않습니다. 그렇게 말하면 VS를 정말로 설치하지 않으려면 아래의 모든 파일을 복사해야합니다 %ProgramFiles32%\MSBuild\Microsoft\.

Web Deploy Tool 도 설치해야합니다 . 나는 그것이 생각합니다.


답변

UPD : VS2017부터 빌드 도구에는이 문제를 완전히 제거하는 워크로드가 있습니다. @SOReader 답변을 참조하십시오 .

빌드 서버에서 아무것도 수정하지 않으려는 경우에도 프로젝트가 소스 제어에서 바로 빌드되도록하려면 필요한 바이너리를 소스 제어 아래에 두는 것이 좋습니다. 다음과 같이 프로젝트 파일에서 가져 오기 섹션을 수정해야합니다.

<Import Project="$(SolutionDir)\BuildTargets\WebApplications\Microsoft.WebApplication.targets" />
<Import Condition="false" Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

첫 번째 행은 솔루션 디렉토리와 관련된 새 위치에서 실제로 가져옵니다. 두 번째는 Condition="false"Visual Studio가 프로젝트를 유효한 웹 응용 프로그램 프로젝트 (VS 2010 SP1 자체에서 수행하는 트릭)로 간주 할 수 있도록하는 원래 줄의 해제 버전 ( )입니다.

소스 컨트롤 아래에 C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplicationsto BuildTargets폴더 를 복사하는 것을 잊지 마십시오 .


답변

현재 2017 년에는 MSBuildTools를 사용하여 WebApplication Redists를 설치할 수 있습니다. 이 페이지 로 이동하여 MSBuild 2017 도구를 다운로드하고 설치하는 동안 Web development build tools이러한 대상을 설치 하려면 클릭하십시오 .
여기에 이미지 설명을 입력하십시오

C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications기본적으로 누락 된 라이브러리를 설치하게됩니다.


답변

NuGet 패키지 MSBuild.Microsoft.VisualStudio.Web.targets를 사용 하여 Visual Studio 프로젝트 내에서 참조하고 Andriy K가 제안한대로 참조를 변경할 수도 있습니다.


답변

을 바탕으로 이 게시물에 여기 당신은 단순히 다운로드 할 수 있습니다 마이크로 소프트 비주얼 스튜디오 2010 쉘 (통합) 재배포 가능 패키지 와 대상이 설치됩니다.

이렇게하면 빌드 서버에 Visual Studio를 설치할 필요가 없습니다.

방금 시도한 결과 작동하는지 확인할 수 있습니다.

전에:

오류 MSB4019 : 가져온 프로젝트 “C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets”를 찾을 수 없습니다. 선언의 경로가 올 바르고 파일이 디스크에 있는지 확인하십시오.

설치 후 :

[정확하게 빌드]

이것은 분명히 빌드 서버에 Visual Studio를 설치하는 것보다 훨씬 더 나은 솔루션입니다.


답변

최신 Windows SDK의뿐만 아니라, 위에서 언급 한 바와 같이 “마이크로 소프트 비주얼 스튜디오 2010 쉘 (통합) 재배포 가능 패키지” Microsoft.WebApplication.targets 및 “Microsoft Visual Studio Team 시스템 2008 데이터베이스 버전 GDR R2” Microsoft.Data.Schema에 대한 .SqlTasks.targets는 Visual Studio 2010을 설치해야 할 필요성을 완화해야합니다. 그러나 VS 2010을 설치하면 실제로 전체 다운로드가 적고 결국 작업량이 줄어 듭니다.