web-dev-qa-db-ja.com

フォルダーをデプロイメントから除外し、追加のファイルの削除を停止する

Windows 2012サーバーでWeb配置を使用して、配置にユーザーが作成したコンテンツがいっぱいのフォルダーがある場合、次のコマンドを使用して.pubxmlファイルでの公開から除外します。

<ExcludeFoldersFromDeployment>somefoldername</ExcludeFoldersFromDeployment>

展開に宛先で追加ファイルを削除するオプションを使用する場合、このフォルダー内のファイルはライブサーバーから削除されます。

<SkipExtraFilesOnServer>False</SkipExtraFilesOnServer>

ライブサーバーのクリーンアップを含む展開プロセスで、指定したフォルダーを無視する方法はありますか?公開プロセスによって削除または変更されたファイルもサーバーから削除されることを知っているのは好きですが、ユーザーが生成したデータのフォルダー全体を一掃することは明らかに問題です!

7
Polynomial

以下は、自分の.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>
1
Vince Pike

このような何かがそれを行います:

<?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で削除をスキップする

0