单元测试项目无法读取应用程序的App.config

2024-05-06

在运行 Visual Studio Pro 2013 12.0.21005.1 的构建计算机上,我有一个单元测试项目无法正确读取其 App.config 文件(如果有的话)。以下返回 null:

System.Configuration.ConfigurationManager.GetSection( "loggingConfiguration" )

不仅仅是日志配置部分无法读取;还包括日志配置部分。任何读取任何部分的尝试都会导致空值。

在运行 Visual Studio Pro 2013 12.0.31101.00 Update 4 的笔记本电脑上,单元测试项目可以很好地读取 App.config,并且上面的调用返回预期的对象。

我的 XML 看起来像这样:

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
    <section name="exceptionHandling" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Configuration.ExceptionHandlingSettings, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
    <section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
    <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />
  </configSections>

<loggingConfiguration name="" tracingEnabled="false" defaultCategory="Verbose" logWarningsWhenNoCategoriesMatch="false">
    <listeners>
      <add name="Event Log Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.FormattedEventLogTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.FormattedEventLogTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" source="MyCompany" formatter="Text Formatter" log="Application" />
      <add name="Rolling Flat File Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.RollingFlatFileTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.RollingFlatFileTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" fileName="Service.log" formatter="Text Formatter" rollFileExistsBehavior="Increment" rollInterval="Day" />
      <add listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.CustomTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" type="MyCompany.Core.Instrumentation.ConsoleTraceListener, MyCompany.Core" formatter="Debug Formatter" traceOutputOptions="None" name="Debug Console Listener" />
    </listeners>
    <formatters>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="Timestamp: {timestamp(local)}{newline}&#xA;Title: {title}{newline}&#xA;Message: {message}{newline}&#xA;Severity: {severity}{newline}&#xA;Priority: {priority}{newline}&#xA;Categories: {category}{newline}&#xA;EventId: {eventid}{newline}&#xA;Machine: {localMachine}{newline}&#xA;ProcessId: {localProcessId}{newline}&#xA;Process Name: {localProcessName}{newline}&#xA;Win32 ThreadId:{win32ThreadId}{newline}&#xA;Thread Name: {threadName}{newline}&#xA;Extended Properties: {dictionary({key} - {value}{newline})}" name="Text Formatter" />
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" template="{timestamp(local:FixedFormatUSDate)} {timestamp(local:FixedFormatTime)} [{severity} P{priority} T{win32ThreadId}/'{threadName}']   {title}: {message} [{category}]" name="Debug Formatter" />
    </formatters>
    <logFilters>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.CategoryFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" categoryFilterMode="AllowAllExceptDenied" name="Category Filter">
        <categoryFilters>
        </categoryFilters>
      </add>
      <add type="Microsoft.Practices.EnterpriseLibrary.Logging.Filters.PriorityFilter, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" maximumPriority="4" name="Priority Filter" />
    </logFilters>
    <categorySources>
      <add switchValue="Information" name="MyCompany.Core.Configuration">
        <listeners>
          <add name="Event Log Listener" />
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
      <add switchValue="All" name="ServiceExceptionPolicy">
        <listeners>
          <add name="Event Log Listener" />
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
      <add switchValue="All" name="Critical">
        <listeners>
          <add name="Event Log Listener" />
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
      <add switchValue="All" name="Error">
        <listeners>
          <add name="Event Log Listener" />
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
      <add switchValue="All" name="Warning">
        <listeners>
          <add name="Event Log Listener" />
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
      <add switchValue="All" name="Information">
        <listeners>
          <add name="Event Log Listener" />
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
      <add switchValue="All" name="Verbose">
        <listeners>
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </add>
    </categorySources>
    <specialSources>
      <allEvents switchValue="Off" name="All Events" />
      <notProcessed switchValue="Off" name="Unprocessed Category" />
      <errors switchValue="All" name="Logging Errors &amp; Warnings">
        <listeners>
          <add name="Rolling Flat File Listener" />
          <add name="Debug Console Listener" />
        </listeners>
      </errors>
    </specialSources>
  </loggingConfiguration>
  <exceptionHandling>
    <exceptionPolicies>
      <add name="ServiceExceptionPolicy">
        <exceptionTypes>
          <add name="All Exceptions" type="System.Exception, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" postHandlingAction="ThrowNewException">
            <exceptionHandlers>
              <add name="Logging Exception Handler" type="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging.LoggingExceptionHandler, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" logCategory="ServiceExceptionPolicy" eventId="100" severity="Error" title="Enterprise Library Exception Handling" formatterType="Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.TextExceptionFormatter, Microsoft.Practices.EnterpriseLibrary.ExceptionHandling" priority="0" />
            </exceptionHandlers>
          </add>
        </exceptionTypes>
      </add>
    </exceptionPolicies>
  </exceptionHandling>
  <dataConfiguration defaultDatabase="SOMEDATABASE" />
  <connectionStrings>
  <!-- some connection strings -->
  </connectionStrings>
</configuration>

任何人都知道这在一种环境中失败但在另一种环境中失败的任何原因吗?


这需要自定义配置:

<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="true" />

看看里面type它指向自定义配置处理程序。我的猜测是测试项目中缺少 DLL 引用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单元测试项目无法读取应用程序的App.config 的相关文章

  • 适合初学者的良好调试器教程[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有谁知道一个好的初学者教程 在 C 中使用调试器 我感觉自己好像错过了很多 我知道怎么做 单步执行代码并查看局部变量 虽然这常常给我带来问
  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • 如何在C(Linux)中的while循环中准确地睡眠?

    在 C 代码 Linux 操作系统 中 我需要在 while 循环内准确地休眠 比如说 10000 微秒 1000 次 我尝试过usleep nanosleep select pselect和其他一些方法 但没有成功 一旦大约 50 次 它
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Visual Studio 在构建后显示假错误

    我使用的是 Visual Studio 2017 构建后 sln在调试模式下 我收到错误 但是 当我通过双击错误列表选项卡中的错误来访问错误时 错误会从页面中消失 并且错误数量也会减少 我不太确定这种行为以及为什么会发生这种情况 有超过 2
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • WebBrowser.Print() 等待完成。 。网

    我在 VB NET 中使用 WebBrowser 控件并调用 Print 方法 我正在使用 PDF 打印机进行打印 当调用 Print 时 它不会立即启动 它会等到完成整个子或块的运行代码 我需要确保我正在打印的文件也完整并继续处理该文件
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 实体框架中的“it”是什么

    如果以前有人问过这个问题 请原谅我 但我的任何搜索中都没有出现 它 我有两个数据库表 Person 和 Employee 对每个类型的表进行建模 例如 Employee is a Person 在我的 edmx 设计器中 我定义了一个实体
  • 这个可变参数模板示例有什么问题?

    基类是 include
  • 使用 omp_set_num_threads() 将线程数设置为 2,但 omp_get_num_threads() 返回 1

    我有以下使用 OpenMP 的 C C 代码 int nProcessors omp get max threads if argv 4 NULL printf argv 4 s n argv 4 nProcessors atoi argv
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp

随机推荐

  • 结构中字符串的管理

    我知道字符串的长度是可变的 因此它们需要内存中的可变空间来存储 当我们在 a 中定义一个字符串项时struct the struct的大小的长度将是可变的 较旧的语言通过使用固定长度的字符串来管理此问题 但是 C 中没有办法定义固定长度的字
  • 如果在 addSubView 之后调用,UIButton 不会移动

    所以我想移动一个UIButton单击后 The addMoreFields单击按钮后调用该方法 addMoreFieldBtn是一个全球性的UIButton 当我点击它时什么也没有发生 奇怪的是 如果我注释掉addSubView代码然后按钮
  • 如何使用jquery通过ajax发送电子邮件地址

    var emailid email protected cdn cgi l email protection var data email emailid ajax type POST url sample php data data da
  • 尝试修复此错误:找不到映射的图像 UIPickerViewFrameLeft-162-Popover.png

    我正在尝试以编程方式创建 uiPickerView 并将其添加到视图中 而不使用界面生成器 不要误会我的意思 我喜欢 IB 但我想这样做的原因是因为我正在尝试构建一个对象 我可以快速插入该对象以使用 UIPopoverViewControl
  • chrome_options.binary_location() TypeError: 'str' 对象不可调用

    我希望每个人都好 我是 python 新手 我尝试运行这段代码 但我不明白问题是什么以及如何解决这个问题 我的代码是 from selenium import webdriver from time import sleep url raw
  • 用parsec解析递归数据

    import Data Attoparsec Text Lazy import Data Text Lazy Internal Text import Data Text Lazy pack data List a Nil Cons a L
  • 间接变量/参数引用(另一个属性/另一个变量中的名称)

    是否可以使用 XSL 访问名称存储在另一个变量 或参数 中的变量 或参数 如果没有 为什么 我是 xsl 的新手 来自其他语言 可以使用此功能 例如 bash ant 也许我在寻找这个问题的答案时就错了 但既然我在SO上没有找到它 我想应该
  • 使 div 更大并在悬停时向上动画更大的部分

    当用户将鼠标悬停在 div 上时 我试图将 div 向上设置动画 我可以对 div 进行动画处理 使其变大 但动画是向下发生的 我试图将 div 的底部保持在同一位置 并平滑地向上增加 div 的大小 请参阅 jsfiddle 这里 htt
  • Python - 重写 print()

    我正在使用 mod wsgi 想知道是否可以覆盖 print 命令 因为它没用 这样做是行不通的 print myPrintFunction 因为这是一个语法错误 Print 不是 Python 2 x 中的函数 因此这不能直接实现 但是
  • Javascript 设置输入字段的值

    因为虽然我无法设置 type text 的输入字段的值 以前 我总是使用这样的东西
  • 在heroku实例上安装PIL

    我创建了一个python flask托管在heroku上的应用程序 我很有趣PILpython 中的图像库 我无法安装PIL在heroku实例中 我尝试过以下几种方法 方法一 Added PIL 1 1 7 in requirements
  • 锁定 contenteditable="true" div 中的元素

    我有一个用于用户输入的 contenteditable div 当单击按钮时 它会显示替换某些单词的选项 首先 它删除所有 html 并创建可以替换单词的 span 元素 这些词的标记不同 我面临一些问题 当直接在跨度之前或之后单击并键入文
  • 将 Google Drive 目录中的所有文件恢复为旧版本

    最近 病毒加密了我的所有文件 不幸的是 谷歌备份和同步立即将文件的新版本 加密 上传到我的驱动器 我知道我可以将单个文件恢复到以前的版本 但我的驱动器上大约有 30 000 个文件 这意味着我无法手动恢复所有这些文件 我尝试使用 Apps
  • 如何编写Elasticsearch多个必须脚本查询?

    我想使用查询来比较多个字段 我有字段 1 到 4 我想搜索字段 1 大于字段 2 的数据 并且下面的查询工作正常 size 0 source field1 field2 field3 field4 sort query bool filte
  • 使用数据库数据模型生成 SQLAlchemy 模型、架构和 JSON 响应

    将 Flask 和 SQLAlchemy 用于 Python Web 应用程序 我的目标是创建一个系统 在其中我可以 从现有 PostgreSQL 数据库导入数据模型 并将它们映射到相应 SQLAlchemy 模型中的字段 使用这些 SQL
  • 如何确定某个键是否被按下,只知道它在美国键盘上的位置?

    考虑一下 对于 Windows 视频游戏 我需要确定在美式英语键盘布局上生成 和 字符的键 通常位于 Escape 键下方并保留为 1 是否已被按下 这听起来似乎是一个微不足道的问题 但对我来说似乎不是一个问题 当Windows发送键盘消息
  • 我可以获得有关过度限制类型签名的警告吗?

    当我为可能更具多态性的函数提供类型签名时 GHC 或某些 lint 工具可以告诉我吗 GHC 不这样做 快速搜索 Hackage 也没有发现任何结果 实现这样的事情的一个简单但可能非常有效的方法是在 GHCi 中加载模块 使用 browse
  • 如何在MongoDb中保存Timestamp类型值 |爪哇

    从 Java 驱动程序中 我想在 MongoDb 中保存一个类似于下面 json 的文档 ts Timestamp 1421006159 4 我尝试过的选项 选项1 映射 doc new HashMap 1 doc put ts new B
  • Pytorch“展开”等价于 Tensorflow [重复]

    这个问题在这里已经有答案了 假设我有大小为 50 50 的灰度图像 在本例中批量大小为 2 并且我使用 Pytorch Unfold 函数 如下所示 import numpy as np from torch import nn from
  • 单元测试项目无法读取应用程序的App.config

    在运行 Visual Studio Pro 2013 12 0 21005 1 的构建计算机上 我有一个单元测试项目无法正确读取其 App config 文件 如果有的话 以下返回 null System Configuration Con