ASP.NET Core Web部署包自动跳过指定目录配置问题
解决ASP.NET Core Web部署包内置跳过logs目录的问题
我完全懂你的困扰——每次执行foo.deploy.cmd都要手动加参数太繁琐,而且在传统ASP.NET里好用的MsDeploySkipRules,到了ASP.NET Core项目里居然没生效。这确实是因为ASP.NET Core的发布流程和经典ASP.NET存在差异,下面给你几个可行的解决方案:
方案1:直接在项目文件(.csproj)中配置跳过规则
修改你的ASP.NET Core项目文件(.csproj),添加以下配置,确保跳过规则被正确注入到部署包中:
<PropertyGroup> <!-- 关键配置:开启后会保留服务器上未包含在部署包中的额外文件 --> <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> </PropertyGroup> <ItemGroup> <!-- 跳过logs目录的删除操作 --> <MsDeploySkipRules Include="SkipLogsDirectory"> <ObjectName>dirPath</ObjectName> <AbsolutePath>logs</AbsolutePath> <SkipAction>Delete</SkipAction> </MsDeploySkipRules> <!-- 可选:跳过logs目录下所有文件的删除/覆盖 --> <MsDeploySkipRules Include="SkipLogsFiles"> <ObjectName>filePath</ObjectName> <AbsolutePath>logs\\.*</AbsolutePath> <SkipAction>Delete</SkipAction> </MsDeploySkipRules> </ItemGroup>
方案2:修正pubxml发布配置文件的写法
如果你更习惯在pubxml里配置,确保你的.pubxml文件包含完整的规则配置,并且必须开启SkipExtraFilesOnServer:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>Package</WebPublishMethod> <PackageAsSingleFile>True</PackageAsSingleFile> <!-- 必须开启此选项,否则默认会删除服务器上未在包中的文件 --> <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer> <!-- 其他你的发布配置项... --> </PropertyGroup> <ItemGroup> <MsDeploySkipRules Include="SkipLogsDirectory"> <ObjectName>dirPath</ObjectName> <AbsolutePath>logs</AbsolutePath> <SkipAction>Delete</SkipAction> </MsDeploySkipRules> </ItemGroup> </Project>
为什么传统ASP.NET的配置在Core里无效?
ASP.NET Core的发布系统基于全新的MSBuild目标,和经典ASP.NET的Web部署流程不完全兼容。经典项目会自动把MsDeploySkipRules转换为deploy.cmd的命令行参数,但Core项目需要显式开启SkipExtraFilesOnServer,并且要确保规则的ObjectName和AbsolutePath配置准确——比如用dirPath指定目录、filePath指定文件,匹配路径要符合MSDeploy的语法规范。
验证配置是否生效
发布生成部署包后,你可以通过以下方式确认规则是否生效:
- 打开生成的
foo.deploy.cmd脚本,查看是否包含类似-skip:Directory=\\logs的参数 - 解压部署包,检查
parameters.xml或archive.xml是否包含你的跳过规则定义
如果还是没生效,你可以先手动修改deploy.cmd临时验证:找到set MsDeployAdditionalFlags=这一行,改为:
set MsDeployAdditionalFlags=-skip:Directory=\\logs
这是临时方案,但能快速验证规则是否有效,之后再回到项目配置里排查问题。
内容的提问来源于stack exchange,提问作者JacquesB
相关产品推荐
相关产品推荐

