我无法实现,因此Visual Studio中的Publish不会删除服务器网站上的App_Data文件夹。但我还希望它能继续删除所有文件(除了那个文件夹)以保持目录"清洁"。
我在csproj,.pubxml中试过这个。和它的改动(一个不是OnBeforePackageUsingManifest,但是我的东西)
<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>
我甚至可以使用&#34; SkipAction =删除&#34;多数民众赞成无法这样做,因为无法识别删除。
有没有办法做到这一点?最好是从.pubxml,但csproj也会这样做。不必处理msdeploy命令行。
使用visual studio 2015。
答案 0 :(得分:1)
请在此处寻找在Visual Studio 2019发布期间保持“认证网络” .wellknown \ acme-challenge文件夹web.config的方法。以为我会分享。
在pubxml文件中添加以下内容将导致部署过程在发布过程中不会删除web.config。
<ItemGroup>
<MsDeploySkipRules Include="CustomSkipFile">
<ObjectName>filePath</ObjectName>
<AbsolutePath>.well-known\\acme-challenge\\web.config</AbsolutePath>
</MsDeploySkipRules>
</ItemGroup>
希望这对某人有帮助!
答案 1 :(得分:0)
这(最近)SO answer提到MsDeploySkipRules
设置仅在通过命令行发布时才有效。
从VS IDE进行Web部署时,建议检查以下选项: