我的网络应用程序上有一个文件夹,用于存储用户上传,即个人资料图片等。
当我使用WebDeploy时,有一个选项“保留额外文件(不要删除)”,勾选时确保不删除配置文件图片。
我正在寻找的方法是确保即使未被删除,也可以确保删除某个文件夹。这是因为我不希望其他开发人员在将来意外禁用该功能。或者我就此而言。
有什么想法吗?我在这里看到了一些类似的问题,但似乎没有任何东西与我正在使用的Visual Studio 2010相关。
答案 0 :(得分:3)
(我假设您正在使用Visual Studio 2010中的发布配置文件w / Azure SDK或Visual Studio 2012 RTM。如果不是,请在项目根目录中创建一个名为ProjectName.wpp.targets
的MSBuild文件并放入相反的内容)
您可以通过在发布配置文件中设置<SkipExtraFilesOnServer>true</SkipExtraFilesOnServer>
来禁用所有形式的删除(相当于您提到的复选框)。
要跳过特定目录,对此问题的评论意味着您可以使用以下语法:
<ItemGroup>
<ExcludeFoldersFromDeployment Include="FolderName" />
</ItemGroup>
但我以前从未见过它并且没有测试过它。如果不这样做,您可以指定显式的跳过规则。这里会跳过“FolderName” - 请记住AbsolutePath
是正则表达式:
<MsDeploySkipRules Include="SkipFolderName">
<SkipAction>Delete</SkipAction>
<ObjectName>dirPath</ObjectName>
<AbsolutePath>FolderName$</AbsolutePath>
</MsDeploySkipRules>
注意:除非您将UseMsDeployExe
设置为true
答案 1 :(得分:2)
您可以使用msdeploy.exe.configsettings文件在目标计算机上设置特定规则,同一文件夹中还有一个msdeploy.exe.configsettings.example文件。该文件位于%程序文件%\ IIS \ Microsoft Web Deploy - 文件夹中,请参阅Web Deploy Rules
您可以在此设置规则和skipDirectives,并启用它们是否默认,以便获得预期的默认行为。