首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拆分配置文件将导致System.Configuration.dll中的异常

拆分配置文件将导致System.Configuration.dll中的异常
EN

Stack Overflow用户
提问于 2013-10-08 11:36:58
回答 1查看 2.5K关注 0票数 1

我有一个MVC .NET应用程序。解决方案包含应用程序本身和单元测试项目,其中还包含集成测试(包括需要数据库连接的数据层测试)。

我决定将两个项目的连接字符串放在一个单独的配置文件中。我将<connectionStrings>标记的内容复制到一个新文件中,并在web项目的Web.config文件和测试项目的app.config文件中使用了configSource属性。web项目像以前一样进行调试和运行。无法调试测试项目,它将在

‘vstest.ExecutionEngin.x86.exe’(托管(v4.0.30319)):加载'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration.resources\v4.0_4.0.0.0_de_b03f5f7f11d50a3a\System.Configuration.resources.dll‘ 'System.Configuration.ConfigurationErrorsException‘类型的首次异常在System.Configuration.dll中发生

当我尝试运行它时,所有的测试都失败了。当我使用app.config文件的原始版本时,它们会传递。

这是app.config的版本,它可以工作:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <connectionStrings>
    <add name="TumorModelsDB" connectionString="Data source=tsql2; Initial Catalog=TumorModelle; User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
    <add name="AzaraIntegrationTest" connectionString="Data Source=tsql2;Initial Catalog=AzaraIntegrationTest;User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
  </connectionStrings>
</configuration>

这是不起作用的版本(与其他项目所用的web.config一样):

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
  <connectionStrings configSource="ConnectionStrings.config" />
</configuration>

(完整的)新ConnectionStrings.config文件是:

代码语言:javascript
复制
  <connectionStrings>
    <add name="TumorModelsDB" connectionString="Data source=tsql2; Initial Catalog=TumorModelle; User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
    <add name="AzaraIntegrationTest" connectionString="Data Source=tsql2;Initial Catalog=AzaraIntegrationTest;User Id=anonymized; Password=anonymized;" providerName="System.Data.SqlClient" />
  </connectionStrings>

ConnectionStrings.config文件的内容与连接字符串标记的旧内容完全相同。configSource属性中的文件名中没有错误。ConnectionStrings.config文件存在于测试项目中(它不是来自web项目的链接)。生成操作设置为Content,将复制设置为Output不复制。我想不出在哪里找出问题的根源。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-08 12:15:46

我设法找到了解决办法。

尽管this answer评论说正确的设置是“不要复制”,但将其设置为“始终复制”解决了问题。现在,该项目按预期运行并调试。

当文件设置为始终复制时,web项目也会正常运行。当我将包含的文件替换为指向web项目的连接设置文件的链接时,这是非常有用的,正如我从一开始就想要的那样。

逐步解决方案:在配置文件上,选择“属性”。在“属性”窗口中,将“输出上的副本”设置的值更改为“始终复制”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19246702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档