无法打开作为链接添加的configSource文件

Ale*_*sev 13 .net c# model-view-controller web-config

在我的MVC应用程序中,我使用外部配置文件来保持干净的web.config.有些文件是常见的,我将它们添加到项目中作为一个位置的链接.对于那些文件,我将复制选项设置为始终复制,并将这些文件复制到目标文件夹,我看到它们.但是当我尝试在浏览器中打开主页时,我看到"无法打开configSource文件"错误.当我删除文件的链接,只是添加它们(没有链接)一切正常.知道什么可能导致这个错误吗?

Ale*_*sev 18

最后我发现了问题所在.使用"始终复制"时,文件将复制到bin文件夹.但是在虚拟目录中搜索文件而不是在bin中.所以我添加了post build task,它将文件复制到正确的目的地.

  • 值得注意的是,在connectionStrings.config的情况下,它必须与web.config位于同一文件夹中才能正常工作:https://www.asp.net/identity/overview/features-api/best-practices-for将密码和其他敏感数据部署到ASPNET和Azure (2认同)

Joh*_*Lay 8

我按照建议添加了post build事件.但确切的步骤是:

  1. 右键单击项目并导航到属性
  2. 单击Build Events选项卡
  3. Post-build事件命令行:框中,我添加了:

xcopy/s"$(ProjectDir)\ bin\Config""$(ProjectDir)\ Config"


Edg*_*zar 8

在尝试了失败的 xcopy 解决方案后,以下对我有用:

右键单击 cstrings.config,转到Properties.

将属性Copy to Output Directory值设置为Copy always


小智 5

请参阅/sf/answers/2688620721/ 长话短说:您可以添加

<connectionStrings configSource="bin\Connections.config">  
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

为了区分配置(部署/发布,调试/部署版本),您可以添加转换。无论如何,使用它们还是很方便的。

(是的,我知道这个话题已经解决了,但也许有人会像我一样发现这个信息有用)


小智 5

我遇到了同样的问题。就我而言,原因是配置文件的“构建操作”属性。(右键单击配置文件>属性>构建操作)

“生成操作”值设置为“无”。将其更改为“内容”后,问题解决了。(我不确定是将其设置为“无”还是“ Visual Studio的错误”或“我的误点击”。