【发布时间】: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