Windows 2012サーバーでWeb配置を使用して、配置にユーザーが作成したコンテンツがいっぱいのフォルダーがある場合、次のコマンドを使用して.pubxml
ファイルでの公開から除外します。
<ExcludeFoldersFromDeployment>somefoldername</ExcludeFoldersFromDeployment>
展開に宛先で追加ファイルを削除するオプションを使用する場合、このフォルダー内のファイルはライブサーバーから削除されます。
<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
ライブサーバーのクリーンアップを含む展開プロセスで、指定したフォルダーを無視する方法はありますか?公開プロセスによって削除または変更されたファイルもサーバーから削除されることを知っているのは好きですが、ユーザーが生成したデータのフォルダー全体を一掃することは明らかに問題です!
以下は、自分の.well-knownフォルダを他のフォルダだけでなくLetsEncryptに残すために使用するCustomProfile.pubxmlファイルです。以下の太字の項目を追加して、ユーザーが生成したコンテンツなど、サーバー上の処理ファイルを除外します。これは、Visual Studio 2017とServer 2016でのみテストされています。
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project.
You can customize the behavior of this process by editing this MSBuild file.
In order to learn more about this please visit
https://go.Microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developermsbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
</PropertyGroup>
<PropertyGroup>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://www.vinceworks.com</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>True</ExcludeApp_Data>
<MSDeployServiceURL>https://www.vinceworks.com</MSDeployServiceURL>
<DeployIisAppPath>VinceWorks</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>Vince</UserName>
<_SavePWD>True</_SavePWD>
<PrecompileBeforePublish>True</PrecompileBeforePublish>
<EnableUpdateable>True</EnableUpdateable>
<DebugSymbols>False</DebugSymbols>
<WDPMergeOption>DonotMerge</WDPMergeOption>
</PropertyGroup>
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFolder">
<ObjectName>dirPath</ObjectName>
<AbsolutePath>VinceWorks\\\.well-known</AbsolutePath><!--Regular Expression here-->
</MsDeploySkipRules>
</ItemGroup>
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFolder">
<ObjectName>dirPath</ObjectName>
<AbsolutePath>VinceWorks\\Media</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFolder">
<ObjectName>dirPath</ObjectName>
<AbsolutePath>\\Views</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
</Project>
このような何かがそれを行います:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.Microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<LastUsedBuildConfiguration>Local</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish />
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>localhost</MSDeployServiceURL>
<DeployIisAppPath>AppPath</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>
<MSDeployPublishMethod>InProc</MSDeployPublishMethod>
<EnableMSDeployBackup>False</EnableMSDeployBackup>
<UserName />
<_SavePWD>False</_SavePWD>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
</PropertyGroup>
<PropertyGroup>
<UseMsDeployExe>true</UseMsDeployExe>
</PropertyGroup>
<Target Name="AddCustomSkipRules">
<Message Text="Adding Custom Skip Rules" />
<ItemGroup>
<MsDeploySkipRules Include="SkipFilesFolder">
<SkipAction>Delete</SkipAction>
<ObjectName>filePath</ObjectName>
<AbsolutePath>YourFolderNameHere</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
</Target>
</Project>
私はここに詳細な投稿があります:
MsDeployパブリッシュプロファイル.pubxmlを使用して、IISで空のフォルダー構造を作成し、MsDeploySkipRulesで削除をスキップする