【问题标题】:How to skip delete on folder during publish?如何在发布期间跳过删除文件夹?
【发布时间】:2016-06-06 07:46:28
【问题描述】:

我做不到,所以从 Visual Studio 发布不会删除服务器网站上的 App_Data 文件夹。但我也希望它继续删除所有文件(该文件夹除外)以保持目录“干净”。

我在 csproj 中尝试过这个,.pubxml。以及它的改动(有一个不是 OnBeforePackageUsingManifest,而是 iis 的东西)

<PropertyGroup>
  <OnBeforePackageUsingManifest>AddCustomSkipRules</OnBeforePackageUsingManifest>
</PropertyGroup>
<Target Name="AddCustomSkipRules">
  <ItemGroup>
    <MsDeploySkipRules Include="SkipDeleteAppData">
      <SkipAction>Delete</SkipAction>
      <ObjectName>filePath</ObjectName>
      <AbsolutePath>$(_Escaped_PackageTempDir)\\App_Data\\.*</AbsolutePath>
      <XPath>
      </XPath>
    </MsDeploySkipRules>
    <MsDeploySkipRules Include="SkipDeleteAppData">
      <SkipAction>Delete</SkipAction>
      <ObjectName>dirPath</ObjectName>
      <AbsolutePath>$(_Escaped_PackageTempDir)\\App_Data\\.*</AbsolutePath>
      <XPath>
      </XPath>
    </MsDeploySkipRules>
  </ItemGroup>
</Target>

如果我使用“SkipAction=Delete”,我什至无法这样做,因为无法识别删除。

有没有办法做到这一点?最好来自 .pubxml,但 csproj 也可以。不必处理 msdeploy 命令行。

使用 Visual Studio 2015。

【问题讨论】:

标签: asp.net-mvc visual-studio msdeploy


【解决方案1】:

如果“删除目标位置的其他文件”和“从 App_Data 文件夹中排除文件”都被选中,仍然会先删除所有内容并忽略 App_Data 文件夹(不会发布)。

我能给出的唯一建议是隐藏文件夹,这样即使“删除...”被选中它也不会被删除。

【讨论】:

    【解决方案2】:

    来到这里寻找一种方法来在 Visual Studio 2019 发布期间保留“认证网络”.wellknown\acme-challenge 文件夹 web.config。我想我会分享它。

    将以下内容添加到 pubxml 文件将导致 deploy 在发布期间不会删除 web.config。

    <ItemGroup>
      <MsDeploySkipRules Include="CustomSkipFile">
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>.well-known\\acme-challenge\\web.config</AbsolutePath>
      </MsDeploySkipRules>
    </ItemGroup>
    

    希望这对某人有所帮助!

    【讨论】:

      【解决方案3】:

      这个(最近的)SO answer 提到 MsDeploySkipRules 设置仅在通过命令行发布时有效。

      从 VS IDE 进行 Web 部署时,建议检查以下选项:

      • 删除目标位置的其他文件
      • 从 App_Data 文件夹中排除文件

      【讨论】:

        猜你喜欢
        • 2012-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-02-18
        • 2016-03-23
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多