在我的MVC应用程序中,我使用外部配置文件来保持干净的web.config。一些文件是常见的,我从一个位置添加它们到项目中作为链接。对于这些文件,我将复制选项设置为始终复制,这些文件将被复制到目标文件夹,并且我可以看到它们。但是当我尝试在浏览器中打开主页时,我看到“无法打开configSource文件”的错误。当我删除文件链接,只是将它们添加进去(没有链接),一切都运行良好。有任何想法是什么导致这个错误?
最终我找到了问题所在。当使用“始终复制”选项时,文件会被复制到bin文件夹中。但是文件是在虚拟目录而不是bin目录中进行搜索的。因此,我添加了后置构建任务以将文件复制到正确的目标位置。
我按照建议添加了一个构建后事件。但是具体步骤如下:
xcopy /s "$(ProjectDir)\bin\Config" "$(ProjectDir)\Config"
我曾经遇到过同样的问题。在我的情况下,配置文件的“生成操作”属性是导致问题的原因。 (右键单击配置文件>属性>生成操作)
“生成操作”的值被设置为“无”。当我将其更改为“内容”时,问题得到了解决。 (我不确定是“Visual Studio的错误”还是“我误点击了”,导致它被设置为“无”。
<connectionStrings configSource="bin\Connections.config">
</connectionStrings>
要区分配置(部署/发布、调试/部署版本),您可以添加转换。无论如何,使用它们非常方便。
(是的,我知道这个话题已经解决了,但也许有人会像我一样发现这些信息很有用)