如何在Visual Studio发布时排除指定文件(支持Azure DevOps部署)
Visual Studio Web项目发布排除特定文件(支持本地+Azure DevOps)
问题分析
你之前使用<None Remove>或<Publish Remove>节点无效,是因为Web项目发布逻辑中,bin目录下的编译输出文件会被默认包含到发布包中,单纯从项目项里移除并不会阻止它们被复制到发布目录。
正确配置方案
直接在.csproj文件中添加以下配置,通过CopyToPublishDirectory="Never"明确指定这些文件不被复制到发布目录,该配置同时支持本地Visual Studio发布和Azure DevOps的dotnet publish部署:
<ItemGroup> <!-- 排除指定DLL和PDB文件 --> <None Update="bin\System.ValueTuple.dll" CopyToPublishDirectory="Never" /> <None Update="bin\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll" CopyToPublishDirectory="Never" /> <None Update="bin\MyProject.Hotfixes.pdb" CopyToPublishDirectory="Never" /> <None Update="bin\MyProject.Hotfixes.dll" CopyToPublishDirectory="Never" /> <!-- 排除roslyn整个文件夹及所有子内容 --> <None Update="bin\roslyn\**\*" CopyToPublishDirectory="Never" /> </ItemGroup>
验证步骤
- 本地发布:在Visual Studio中重新发布项目,查看发布目录是否已排除目标文件/文件夹
- Azure DevOps部署:确保Pipeline中使用
dotnet publish命令(而非旧的MSBuild参数),该配置会被dotnet工具自动识别,无需额外添加排除规则
内容的提问来源于stack exchange,提问作者sukesh
相关产品推荐
相关产品推荐

