【问题标题】:How to prevent deleting of a folder while publishing an ASP.Net project如何在发布 ASP.Net 项目时防止删除文件夹
【发布时间】:2016-09-27 20:51:13
【问题描述】:

我正在开发一个 ASP.NET 项目,可以通过在 Visual Studio 的项目资源管理器中右键单击该项目并选择“发布”来在服务器上发布该项目。 服务器上有一个名为“图片”的文件夹,发布时不得删除。 所以我在我的项目中添加了一个wpp.targets文件(与csproj文件在同一个文件夹中),但是当我使用VS的发布功能时,这个文件似乎不起作用。

可能是什么原因造成的?

这是我的 wpp.targets 文件:

<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <IncludeSetACLProviderOnDestination>False</IncludeSetACLProviderOnDestination>
  </PropertyGroup>
  <Target Name="AddCustomSkipRules">
    <Message Text="Adding Custom Skip Rules" />
    <ItemGroup>
      <MsDeploySkipRules Include="SkipDeletingPicturesFolder">
        <SkipAction>Delete</SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>pictures</AbsolutePath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>
</Project>

【问题讨论】:

  • 检查您的发布配置文件。在 VS 中右键单击您的网站 -> 发布 -> 设置 -> 展开“文件发布选项” -> 取消选中“在目标位置删除其他文件”。
  • 在发布对话框中,我只有选项“发布前删除所有文件”、“发布时预编译”和“从文件夹 App_Data 中排除文件”。 “在目的地删除其他文件”会很好,但它在哪里?就我而言,我使用的是 VS Professional 2013。
  • 我有VS 2013,可能是你的版本不同。
  • @derloopkat:在 VS 2015 中,“删除目标位置的其他文件”已替换为“在发布前删除所有文件”。不幸的是,在 VS 2013 中没有。
  • 在您的代码中,“图片”看起来不像 AbsolutePath。参见例如stackoverflow.com/a/29688263/2516718

标签: asp.net publishing


【解决方案1】:

将文件拖放到解决方案资源管理器中的图片文件夹中。然后发布。您的文件夹现在将在发布后可用。我通常只是将随机图像放入文件夹中。请记住,必须将文件放入解决方案资源管理器的文件夹中,而不是使用 Windows 文件资源管理器。在你的文件夹中有一个文件基本上说明这个文件夹需要发布。

【讨论】:

  • 还不错,但每次发布都会有一些用户权限上升。
  • 是的。但这很容易做到
猜你喜欢
  • 2018-09-18
  • 1970-01-01
  • 2016-02-08
  • 2011-03-20
  • 1970-01-01
  • 2017-09-01
  • 2010-11-08
  • 2022-07-21
  • 2021-12-09
相关资源
最近更新 更多