2011-08-04 2 views
0

MSDeploy를 사용하여 배포하려는 웹 응용 프로그램이 있습니다. MSBuild를 실행하고 DeployOnBuild 속성을 true로 설정 한 Nant 스크립트가 있습니다. 그것은 서버에서 사용하는 배포 패키지를 만듭니다.Nant 또는 VS2010을 통해 MSDeploy 속성을 사용자 지정하십시오.

내가 원하는 것은 MSDeploy가 새 파일을 배포하기 전에 대상 폴더의 내용을 삭제하지 않기 위해서입니다. 명령 줄에 -enableRule : DoNotDeleteRule을 수동으로 추가 할 수 있지만 수동으로 MSDeploy를 사용하고 싶습니다. 정말 도움이 필요합니다.

Visual Studio 2010을 사용하고 있습니다.이 설정을 거기에서 만들 수있는 방법이 있다면 최적 일 것입니다. Nant에게도 위대한 일을하는 것이 가능하다면.

요약 : Nant를 통해 MSBuild로 만든 배포 패키지에는 기본적으로 -enableRule : DoNotDeleteRule 플래그가 있어야합니다.

답변

1

우리는 박쥐 파일을 만들기위한 NANT 명령을 사용하여 종료 한 후 우리는 그 파일의 명령에 -enableRule 추가 :

<echo file="..\..\Packages\${stage}\${project::get-name()}.${stage}.Run.TestDeploy.bat"> 
     %CD%\${project::get-name()}.${stage}.deploy.cmd /T -enableRule:DoNotDeleteRule 
     PAUSE 
    </echo> 

    <echo file="..\..\Packages\${stage}\${project::get-name()}.${stage}.Run.REALDEPLOY.bat"> 
     %CD%\${project::get-name()}.${stage}.deploy.cmd /Y -enableRule:DoNotDeleteRule 
     PAUSE 
    </echo> 

/T 및/Y 플래그에 MSDeploy에 사용되는 스크립트 (/ T)를 테스트하고 있거나 실제 (/ Y)를 실행 중인지 여부를 확인하십시오.

이 문제를 해결할 수 있지만 만족 스럽습니다.

3

설정 "true"로 값 속성 $ (SkipExtraFilesOnServer) 중 하나를 프로젝트 또는 공유 가져 오기 파일,

<PropertyGroup> 
    <SkipExtraFilesOnServer>true</SkipExtraFilesOnServer> 
</PropertyGroup> 

또는 NANT에서 명령 행에

,

/p:SkipExtraFilesOnServer=true 

참조 자세한 옵션을 보려면 Microsoft.Web.Publishing.targets 파일 ("MSDeploy"로 검색)을 참조하십시오.

+0

입력 해 주셔서 감사합니다. 우리는이 솔루션을 시도했지만 불행히도 작동하지 않았습니다. 나는이 문제를 어떻게 해결했는지에 대한 대답을 게시 할 것이다. – AndersDaniel

관련 문제