놀랍게도 Visual Studio 2012에 대한 답은 여기에 없습니다.
웹 응용 프로그램 및 웹 사이트의 경우 .pubxml 파일을 편집합니다!
내 대답을 따르거나 나중에 찾은이 가이드를 사용해 볼 수 있습니다.
http://www.leniel.net/2014/05/using-msdeploy-publish-profile-pubxml-to-create-an-empty-folder-structure- on-iis-and-skip-deleting-it-with-msdeployskiprules.html # sthash.MSsQD8U1.dpbs
예, 웹 사이트 프로젝트뿐만 아니라 웹 사이트에서도이 작업을 수행 할 수 있습니다. 저는 인터넷에서 Visual Studio 웹 사이트 (웹 사이트 프로젝트가 아님)에서이 찾기 어려운 제외 기능을 찾기 위해 오랜 시간을 보냈으며 이전에 이것이 불가능하다고 결론을 내렸지 만 다음과 같이 보입니다.
~ / Properties / PublishProfiles for Web Application Projects 및 ~ / App_Data / PublishProfiles for Websites에있는 [mypublishwebsitename] .pubxml 파일에서 다음을 추가하면됩니다.
<ExcludeFilesFromDeployment>File1.aspx;Folder2\File2.aspx</ExcludeFilesFromDeployment>
<ExcludeFoldersFromDeployment>Folder1;Folder2\Folder2a</ExcludeFoldersFromDeployment>
<PropertyGroup>
.pubxml 파일 의 기본 요소에 대한 자식으로. 릴리스 또는 디버그와 같은 특정 빌드 유형을 입력하지 않는 한 새 요소를 추가 할 필요가 없습니다.
하지만 기다려!!!
게시 구성에서 다음 설정을 사용하여 대상 / 대상 서버에서 파일을 제거하는 경우 :
그런 다음 웹 게시 프로세스는 소스 / 대상 서버에서 제외 된 항목 (예 : <ExcludeFoldersFromDeployment>
및 <ExcludeFilesFromDeployment>
!
MsDeploy 건너 뛰기 규칙을 구출하십시오.
첫째, Web Publish는 게시 할 때 MSBuild가 아닌 다른 것을 사용하지만 (작업 IO 또는 이와 유사한 것) 버그가 있으며 건너 뛰기 규칙을 인식하지 않으므로 .pubxml에 추가해야합니다.
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
</PropertyGroup>
나는 계속 것 <WebPublishMethod>
자체에 <PropertyGroup>
당신은 당신이 하나 개있을 수 있다고 생각 것, <PropertyGroup>
내가 이동 될 때까지 호출되는되지 않은 사용자의 .pubxml하지만 내 건너 뛰기 규칙의 요소를 <WebPublishMethod>
그 자체로 <PropertyGroup>
요소입니다. 예, 미쳤습니다.하지만 Web Publish가 서버에서 폴더 / 파일을 제외하고 삭제하지 않기 위해이 모든 작업을 수행해야한다는 사실은 미쳤습니다.
이제 내 .pubxml의 실제 SkipRules, ExcludeFolders 및 ExcludeFiles 선언 :
<ExcludeFoldersFromDeployment>Config</ExcludeFoldersFromDeployment>
<ExcludeFoldersFromDeployment>Photos</ExcludeFoldersFromDeployment>
<ExcludeFoldersFromDeployment>Temp</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>Web.config</ExcludeFilesFromDeployment>
<AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
이제 건너 뛰기 규칙 ( <Target>
은 <Project>
.pubxml 의 자식 임) : ( 모든 작업에 대해 건너 뛰기 위해 비워 둘 수 <SkipAction>
있지만 테스트하지 않았으며 확실하지 않습니다.
<Target Name="AddCustomSkipRules">
<Message Text="Adding Custom Skip Rules" />
<ItemGroup>
<MsDeploySkipRules Include="SkipConfigFolder">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Config</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="SkipPhotosFolder">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Photos</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="SkipWebConfig">
<SkipAction>Delete</SkipAction>
<ObjectName>filePath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Web\.config</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
<MsDeploySkipRules Include="SkipWebConfig">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>$(_DestinationContentPath)\\Temp</AbsolutePath>
<XPath>
</XPath>
</MsDeploySkipRules>
</ItemGroup>
</Target>
그리고 .
백 슬래시로 filePath Skip 규칙 을 이스케이프하는 것을 잊지 마십시오 .