在Visual 2013中使用“发布网站”功能时。如何排除发布web.config,使其不覆盖服务器web.config?
除VS版本外,该问题与下面的问题相同。
然而,它的解决方案不适用于VS2013。在VS2013中找不到“生成操作”选项。设置"ExcludeFilesFromDeployment“会导致编译问题。
发布于 2015-05-04 08:11:52
排除web.config文件不是推荐的解决方案。您应该使用web.config转换文件,这是web.xxx.config文件。

发布网站时,Visual将将本地web.config与相应的web.xxx.config文件合并
配置转换文件使用XDT (XML文档转换)语法。例如,如果要更改连接字符串,可以在转换文件中使用以下代码:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="MyDB"
connectionString="value for the deployed Web.config file"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>有关更多示例和信息,请参见使用Visual实现网络项目部署的Web.config转换语法。
发布于 2015-05-04 08:13:00
只需选择web.config属性,将“构建操作”更改为“无”,将“复制到输出目录”更改为“不复制”
发布于 2020-05-07 10:13:30
我知道这是一个旧的帖子,有旧的答案,但对我来说,两种描述的解决方案都是错误的。
当操作环境凭据时,Web.config版本会带来安全风险,而"Build“=”None“解决方案会破坏在本地调试项目的可能性,因为Web.Config文件永远不会出现在"bin”目录中。
这里描述的是一个更干净的解决方案:
它基本上是创建一个ProjectName.wpp.targets文件,其中包含要在发布项目时排除的文件/文件夹列表。
要从名为Blog.wpp.targets的项目中删除Web.config,您需要创建一个名为的文件,如下所示:
文件:Blog.wpp.targets
<?xml version="1.0" encoding="utf-8" ?>
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ExcludeFromPackageFiles Include=".\Web.config">
<FromTarget>Blog.wpp.targets</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
</Project>无需更改项目或.csproj文件中的任何内容。
https://stackoverflow.com/questions/30025340
复制相似问题