2016-12-19 11 views
1

asp.net web api 프로젝트에 wix를 사용하여 설치 프로젝트를 패키지화해야합니다.Visual Studio ASP.NET 웹 API TFS와 다른 폴더에 미리 컴파일 된 파일

사이트를 사전 처리하고 싶습니다. 문제는 프리 컴파일 프로세스가 가변 파일 이름을 생성한다는 것입니다 (특히 .compiled 파일).

또한 TFS 빌드에서 설치를하고 싶습니다.

내 유일한 옵션은 wix 프로젝트의 미리 빌드 단계와 함께 .wxs 파일을 생성하는 것입니다.

.wxs 파일의 원본 경로는 $ (var. _My_Web_Project_ .TargetDir)입니다. 이것은 소스 기반 디렉토리로 번역 된 것으로 보입니다.

이미 Visual Studio로 솔루션을 빌드 할 때 paraffin을 사용하고 있으며 완벽하게 작동합니다.

빌드 TFS를 통해 솔루션을 구축

는 다른 모든 관련 웹 사이트 파일이 소스 기반 디렉토리에 복사 반면 파일을하는 바이너리에 폴더를 복사됩니다 .compiled.

파일 찾을 수 없습니다 'D를 : \ BuildAgents \ ___ 기본 디렉토리 ___ \ 바이너리 \ ___ web_project_dir \ _PublishedWebSites \ 사이트 ___ ___ \ 빈 \ textsample.cshtml.c6fb271c.compiled'

빌드 오류

은 다음과 같다 .

실제로 파일은 소스 디렉토리에 있습니다.

는 'D : \ BuildAgents \ ___ 기본 디렉토리 ___ 소스 \ \ ___ web_project_dir \ _PublishedWebSites \ 사이트 ___ ___ \ 빈 \ textsample.cshtml.c6fb271c.compiled'

내가 어떻게 든 aspnet_compiler 출력 또는 뭔가를 다시 정의 할 필요가 있다고 생각 이런 식으로 할 수는 있지만 그 일을하는 방법을 알 수는 없습니다.

/p:GenerateProjectSpecificOutputFolder=true /p:VisualStudioVersion=14.0 /p:DeployOnBuild=true /p:PublishProfile=local /p:CleanWebProjectOutputDir=False /verbosity:d 

편집 1 :

MSBuild를 명령 줄 인수는 follwing을하다 나는 XAML은를 구축 사용하고 있습니다.

enter image description here

감사 어떤 도움.

EDIT 2 : 새 작업 기반 빌드로 추가 작업 파일을 사용할 필요가 없습니다.

aspnet_compiler 출력을 올바른 폴더에 .compiled 파일 :

C : \ WINDOWS \ Microsoft.NET aspnet_compiler \ 프레임 워크 \ v4.0.30319 \.exe -v/-p D : \ BuildAgents \ vNext \ _work \ 1 \ s \ Softs \ __ 솔루션 __ \ __ Web_Project \ obj \ 릴리스 \ AspnetCompileMerge \ Source -c D : \ BuildAgents \ vNext \ _work \ 1 \ s \ Softs \ __ Solution__ \ __ Web_Project __ \ OBJ \ 릴리스 \ AspnetCompileMerge \ TempBuildDir 빌드 시스템을 기반으로 새 작업에

+0

XAML 빌드 또는 새 작업 기반 빌드 시스템을 사용합니까? 빌드 정의는 어떻습니까? –

+0

XAML 빌드를 사용하고 있습니다. –

답변

0

, 그것은 Copy Files 작업과 대상 폴더에 소스 폴더에서 파일을 복사하는 것은 쉽다.

enter image description here

소스 폴더 : 복사 할 파일이 들어있는 폴더.

내용 : 복사 할 파일 목록에 적용 할 최소화 패턴 필터 (각 줄마다 하나씩)를 지정하십시오.

대상 폴더 : 파일을 복사 할 폴더입니다. 대부분의 경우 변수를 사용하여이 폴더를 지정합니다.

+0

XAML 빌드를 사용하고 있으므로 스크립트를 작성하고 체크 인하 고 XAML 빌드 정의에 빌드 후 스크립트 경로를 지정할 수 있습니다. 이 스크립트 (https://tfsbuildextensions.codeplex.com/SourceControl/latest#Scripts/GatherItemsForDrop.ps1)를 참조하면 일반적인 위치에서 일반적인 바이너리 형식을 수집하고 TFBuild가 복사 및 복사하는 폴더로 복사합니다 준비 장소로 떨어집니다. 웹 사이트의 XAML 빌드 프로세스에서 스크립트 실행에 대한 자세한 내용을 확인하십시오. https://msdn.microsoft.com/library/dn376353%28v=vs.120%29.aspx –

+0

그런데 TFS 2015를 사용하고 있으므로, 사용하기 쉽고 유연한 작업 기반 빌드 시스템을 사용하는 것이 좋습니다. –

+0

고마워요. 봐야 겠어. –