当我使用“仅复制运行此应用程序所需的文件”选项发布ASP.NET Web项目时,为什么web.config文件没有被复制?

10

如何纠正它?


2
一般来说,我不喜欢在发布 Web 项目时复制 Web.config 文件,因为通常我希望本地机器上的 web.config 与服务器上的不同。 - Brian
你能否改进一下这个问题的内容?(如果现在像这样提问,它会被关闭) - Brad Gilbert
3个回答

11

"只有运行此应用程序所需的文件" 是指 bin 文件夹中的 DLL 和引用等构建输出文件,以及具有内容生成操作的任何文件。

由于 web.config 不属于上述文件类型之一,因此您必须将发布选项更改为“所有项目文件”,或手动复制 web.config 文件。


只是对答案的小补充:重命名 web.config 时需要特别注意,因为会转移 BuildAction!我曾经把现有的 web.config 重命名为 web.prod.config 并复制到 VS 之外的外部 web.config 中...新的 web.configBuildActionNone,而 web.prod.configBuildActionContent,导致我出现了问题。 - Learner

9
当你说“ASP.NET web project”时,你是否指的是“ASP.NET web application project”?
如果是这样的话,web.config默认应该具有“Content”的构建操作。正如Brandon所提到的那样,“Content”然后会被复制到发布目标。
为了验证,请在解决方案资源管理器中选择web.config文件,然后使用属性窗口。一个例子: 示例 http://photos.tiredstudent.com/WebStorageHandler.ashx?tb=false&id=558

6

我知道这听起来很傻,但请确保在其属性下将其标记为“内容(Content)”,作为它的构建操作(Build Action)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接