c# - 外部化 appSettings 配置部分(使用 configSource)和 mstest 的冲突

标签 c# asp.net visual-studio unit-testing mstest

我正在为 appsettings 使用外部配置部分,以便每个开发人员能够拥有不同的配置部分,如下所示:

  <appSettings configSource="appsettings.config" />

当我针对这个项目(它是一个网络应用程序)运行 mstest 时,它会像这样盲目地修改这部分:

  <appSettings configSource="appsettings.config">
    <add key="microsoft.visualstudio.teamsystems.backupinfo" value="1;web.config.backup.af6ed449-e04a-4a52-99d6-b8df0b133316" />
    <add key="microsoft.visualstudio.teamsystems.aspnetdevserver:/" value="56917;True;3448;1;-8588944684513929784" />
  </appSettings>

这显然是错误的,即使根据架构也是如此。

之所以需要修改它,是为了指定有关它要运行的 Cassini/dev 服务器的信息。我想就是这样,它似乎没有修改文件中的任何其他部分(很难说,因为它还完全重新格式化了文件)。

问题是,我有什么选择才能让它发挥作用?

到目前为止我只提出了两个实用的,都是次优的

  1. 放弃应用设置的外部配置

  2. 从 Cassini 切换到 cassinidev - 然后我就可以停止使用 [AspNetDevelopmentServer()] 属性,这是一个 结果 web.config 需要 已修改

  3. 在 VS 中配置一些东西以防止它执行此操作。为什么 它甚至关心它自己的哪个端口 卡西尼正在研究?我不能 找到任何配置设置。

  4. 等待 MS 修复此问题,这样 [AspNetDevelopmentServer()] 就会 使用外部化的 appSettings

最佳答案

有点延迟,所以我不知道这是否仍然与您相关......

但您可以使用 file= <appSettings> 的属性而不是 configSource .
即:

 <appSettings file="appsettings.config" /> 

同时 configSource预计只替换整个部分,file合并部分。因此,即使您添加了子元素,它仍会添加来自外部文件的附加元素。

关于c# - 外部化 appSettings 配置部分(使用 configSource)和 mstest 的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6233174/

相关文章:

c# - 如何解决此 LINQ 查询中不支持外部应用的问题

用于生成唯一数字的 C# 按位操作

c# - 如何在 Azure Functions 中设置 HTTP 输出

asp.net - ScriptManager.RegisterStartupScript 不适用于 ASP 按钮单击事件

asp.net - 如何为本地主机网站配置 IIS 7?

c# - NHibernate session 应该如何在 Nancy 中处理每个请求的 session ?

asp.net - 是否可以在用户登录后将页面发送回页面?

asp.net - 如何将navigateurl添加到gridview中的超链接

c# - Visual Studio 2017 中的错误 "missing assembly reference"

windows - 在命令行中编译库时出错