TFS를 사용하여 웹 배포만을 패키지 만드는 방법
문제
TFS 빌드를 사용하여 웹 배포 패키지를 만들어야하며 IIS에서 자동으로 배포하려는 것이 필요하지 않습니다.
빌드 정의에 아래의 두 매개 변수가 추가되었습니다 -> MSBuild 인수
/ p : createPackageOnPublish= true / p : deployonbuild= true
프로브 파일은 ZIP 파일을 드롭 위치에 있고 아래 오류를 얻지 못합니다.
C : \ Program. 파일 \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web \ Microsoft.Web.Publishing.Targets (1657) : "MapuritoiisWebServer"작업이 예기치 않게 실패했습니다. System.Runtime.InteropServices.comException (0x80005000) : 알 수 없음 오류 (0x80005000) AT. System.DirectoryServices.DirectoryEntry.Bind (부울 Thanefife)
System.DirectoryServices.DirectoryEntry.Bind () AT. System.DirectoryServices.DirectoryEntry.get_ISTONTAINER () AT. System.DirectoryServices.DirectoryEntries.CheckIctainer () AT. system.directoryServices.DirectoryEntries.Find (문자열 이름, 문자열) Schemaclassname) AT. Microsoft.Web.Publishing.Tasks.MapuritoiisWebServer.get_IismaJorversion () Microsoft.Web.Publishing.Tasks.MapuritoiisWebServer.Execute () AT. microsoft.build.backend.taskexecutionhost.microsoft.build.backend.itaskexecutionHost.execute () ...에서 Microsoft.Build.Backend.TaskBuilder.ExecuteInstantiTiptape (ItaskexecutionHost. taskexecutionhost, taskloggingContext taskloggingContext, taskhost. TaskHost, Itembucket Bucket, TaskexecutionMode HowToExecuteTask, boolean & taskResult)문제가 될 수 있습니까?
이제는 서로 다른 오류가 발생합니다
오류 : 웹 배포 작업이 실패했습니다. ( '매니페스트'유형 'e : \ tfs \ dev \ applicatname \ binaries \ dev \ applicationname_package \ applicationname_package \ applicationname.sourcempackage \ applicationname_package \ applicationname_package \ applicationname_package \ applicationname_package \ applicationname_package)
오류 : '매니페스트'유형의 개체와 경로 'E : \ tfs \ dev \ applicationname \ binaries \ release_publishedwebsites \ applicationname_package \ applicationname.sourcemanifest.xml'을 만들 수 없습니다.
오류 : 매니페스트 'SiteManifest'의 하나 이상의 항목이 유효하지 않습니다.
오류 : 응용 프로그램 '/ ApplicationName'이 사이트의 기본 웹 사이트 '에 없습니다.
해결책
웹 프로젝트에 대한 빌드에 '패키지'대상을 추가해야합니다.
/t:Build;Package
.
저는 TFS 빌드에서 해당 대상을 사용하여 지금까지 PACKAGE ZIP로 _PUBULISHESEWEBSITE 폴더를 생성합니다.
편집 : 패키지 대상의 설명 웹 응용 프로그램의 CSPROJ 파일을 XML 파일로 보면 다음이 포함 된 가 포함되어 있음을 알 수 있습니다.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
.
여기에는 웹 타겟이 빌드 프로세스에 포함됩니다. 이 파일을 열고 밑면 에이 파일을 균열하여 가 포함됩니다.
<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
.
이 파일에는 MSBuild의 웹 배포 프로세스의 정의가 들어 있습니다. 변수가 "패키지" 배포에서 호출하기 위해 "대상"을 나타내는 변수를 선언합니다.
<DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>
.
이 파일을 더 이상 읽으면 커버 아래에서 포장 및 배포 작업이 어떻게 작동하는지과 빌드를 사용자 정의하기 위해 조작 할 수있는 속성 및 대상 집합에 대한 아이디어를 제공합니다.
긴 이야기가 짧음, 라고 부르는 경우
msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release
.
앱의 릴리스 구성을위한 웹 배포 패키지를 구축해야합니다.
다른 팁
나는 동일한 문제를 가지고 있었고, 이것을 해결 한 유일한 것은 이렇게했다.
- IIS 관리 콘솔을 엽니 다.
- 기본 웹 사이트로 이동
- 'ApplicationName'라는 새 응용 프로그램 추가
- 다시 MSBuild를 실행하십시오.그것은 작동 할 것입니다.
msbuild deployonbuild= true not publishing
Atlassian Bamboo와 동일한 문제가 있었으며,이 문제가 해결되었습니다. "C : \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web의 내용을 Visual Studio 복사하는 시스템에서"TFS 빌드 서버에.