2017-03-20 3 views
1

Visual Studio 2015 및 온 프레미스 TFS 2013 서버를 사용하여 레거시 VB.Net ASP.Net Forms 응용 프로그램에 대한 연속 통합 프로세스를 설정하려고합니다. . 그러나, 나는 성공적으로 내 애플리케이션을 빌드하기 위해 Build Definition을 얻으려고 노력하고있다.누락 된 파일로 인해 MSBuild가 실패 함 - 실제로 제외하려는 경우

빌드가 실패하여 다음 오류가 발생합니다.

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "appSettings.config" because it was not found. 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "connectionStrings.config" because it was not found. 
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets (182): Could not copy the file "globalization.config" because it was not found. 

세 개의 파일이 appSettings.config, connectionStrings.configglobalization.config은 (외부 구성이 그 Web.config의 참조를 파일) 내 CI의 MSBuild에서의 일환으로 사용하지 않는 모든 configSource 설정 파일입니다 언급 (내가 바라고 있어요 필요한 설정을 바꾸기 위해 CI 시스템 web.config에 대한 변환을 사용하는 것).

해당 속성은 Build Action: ContentCopy to output directory: Do not copy으로 표시됩니다. MSBuild에서이를 무시하도록 알려주기 위해이 파일 속성이 정확합니까? Build Action: None으로 전환하려고 시도했지만 성공하지 못했습니다.

그냥 무시하도록 프로젝트 파일이나 MSBuild 설정에 추가 구성을 추가해야합니까?

+0

asp.net 응용 프로그램 빌드의 일부로 웹 사이트를 "게시"하시겠습니까? – granadaCoder

+0

Azure 웹 응용 프로그램에 일단 게시하면이 웹 사이트에 게시하려고합니다. 그러나이 오류는 빌드 자체를 방해하기 때문에 아직 구성하지 못했습니다. – Ted

+0

TFS 빌드 대신 로컬 msbuild에서 작동하는 경우 시도해 봤습니까? –

답변

0

Build Action: ContentCopy to output directory: Do not copy으로 테스트 한 후. 이것은 VS 내 로컬 MSbuild에서도 잘 작동합니다.

문제는 TFS XAML 빌드 정의와 관련이 있습니다. 분명히 그 xx.config 파일은 TFS가 예상하는 경로에 있지 않습니다. XAML 빌드는 실제로 빌드를 수행하기 위해 MSBuild를 호출합니다.

문제를 좁히려면 한 가지 방법은 XAML 빌드와 로컬 MSBuild의 로그 차이를 proj 파일 빌드와 같은 일부 매개 변수와 비교하는 것입니다. 그런 다음 빌드 정의를 수정하십시오.

또 다른 방법은 빌드 프로세스 템플릿에 사용자 지정 워크 플로 활동을 추가하여이를 수행하는 것입니다. 자세한 내용은 TFS Build not transforming web.config as expected을 참조하십시오. 또한 XAML 빌드 정의에서 스크립트 파일 (또는 다른 방법)을 실행하여 TFS 빌드 중에 프로젝트를 빌드하기 전에 올바른 .Config 파일을 사용하도록 프로젝트 (작업 디렉터리)를 수정할 수도 있습니다.

관련 문제