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

Posted

技术标签:

【中文标题】无法打开作为链接添加的 configSource 文件【英文标题】:Unable to open configSource file that was added as link 【发布时间】:2016-03-15 04:12:30 【问题描述】:

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

【问题讨论】:

不支持。 哦,真的吗?我阅读了许多描述该技术的文章。唯一的重点是复制选项,它应该是始终复制或如果更新则复制。 【参考方案1】:

我终于找到了问题所在。当总是使用复制时,文件被复制到 bin 文件夹。但是文件是在虚拟目录中搜索的,而不是在 bin 中。所以我添加了后期构建任务,它将文件复制到正确的目的地。

【讨论】:

值得注意的是,在connectionStrings.config的情况下,它必须和web.config在同一个文件夹中才能正常工作:asp.net/identity/overview/features-api/…【参考方案2】:

我按照建议添加了构建后事件。但具体步骤是:

    右键单击项目并导航到属性 单击构建事件选项卡 在构建后事件命令行:框中我添加了:

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

【讨论】:

【参考方案3】:

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

右击cstrings.config,进入Properties

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

【讨论】:

我的 log4net 配置文件有问题,这对我有帮助,谢谢!步骤:右键log4net.config并选择【属性】,最后设置【复制到输出】文件属性=>始终复制【参考方案4】:

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

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

【讨论】:

【参考方案5】:

见https://***.com/a/38408867/2240453 长话短说:您可以添加

<connectionStrings configSource="bin\Connections.config">  
</connectionStrings>

区分配置(部署/发布所以调试/部署版本)你可以添加transformation。无论如何,使用它们非常方便。

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

【讨论】:

【参考方案6】:

右键单击配置文件>属性。如下图所示设置设置

【讨论】:

以上是关于无法打开作为链接添加的 configSource 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .NET 中为自定义配置部分启用 configSource 属性?

Web.Config 将单个 AppSettings 转换为 ConfigSource

为啥 Web.config 在项目文件夹而不是 bin 中寻找 configSource?

web.config中的configSource

ASP.NET web.config:configSource 与文件属性

Microprofile Config:容错度量标签的动态 ConfigSource 值