程序集未加载 C#

2024-03-09

我有一个项目Common其中包含一个 log4net CustomAppender。我在所有其他项目中引用该项目并在中配置 log4net 附加程序app.config。一切都很顺利,除了一个项目在尝试实例化 Appender 时失败了。

输出显示以下错误:



System.TypeLoadException: Could not load type [Common.Appenders.MyCustomAppender].
Tried assembly [log4net, Version=1.2.11.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a]
and all loaded assemblies
at log4net.Util.SystemInfo.GetTypeFromString(Assembly relativeAssembly, String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Util.SystemInfo.GetTypeFromString(String typeName, Boolean throwOnError, Boolean ignoreCase)
at log4net.Repository.Hierarchy.XmlHierarchyConfigurator.ParseAppender(XmlElement appenderElement)
log4net:ERROR Appender named [MyCustomAppender] not found.
  

所有项目的 log4net 配置都是相同的。app.config包含:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="MyCustomAppender" type="Common.Appenders.MyCustomAppender">
      <file value="log.txt" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="MyCustomAppender" />
    </root>
  </log4net>
</configuration>

从我调用的代码log4net.Config.XmlConfigurator.Configure()。如果我使用手动加载程序集Assembly.Load("Common")在为非工作项目调用 log4net configure 之前,一切都很好。

知道为什么程序集没有加载时MyCustomAppender是通过反射实例化的吗?我该如何解决这个问题?


尝试将程序集的名称放在类型名称之后

<appender name="MyCustomAppender" type="Common.Appenders.MyCustomAppender,Common">

http://weblogs.asp.net/tgraham/archive/2007/05/02/loading-the- assembly-for-a-custom-log4net-appender.aspx http://weblogs.asp.net/tgraham/archive/2007/05/02/loading-the-assembly-for-a-custom-log4net-appender.aspx

请记住,程序集的名称不一定与其默认命名空间或 Visual Studio 中的项目名称相同。这里的相关名称是输出名称(即生成的dll的文件名)

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

程序集未加载 C# 的相关文章

随机推荐

  • GIF 图像在 .net MAUI 应用程序中不起作用

    我想在我的应用程序中显示一些 gif 动画图像 我用来使用 Xamarin Forms 执行此操作的库是 Xamarin FFImageLoading Svg Forms 现在我们正在将应用程序迁移到 net MAUI 我看到 MAUI 文
  • Amazon AWS EC2 端口:连接被拒绝

    我刚刚在一个全新的 AWS 账户上创建了一个 EC2 实例 位于安全组后面 并在上面加载了一些软件 我正在机器上的端口 4567 当前 上运行 Sinatra 并已在我的安全组中向全世界开放该端口 此外 我可以 ssh 进入 EC2 实例
  • C 编程和 TDD

    测试驱动开发仅限于面向对象吗 或者将它与过程语言结合使用是否可能 有用 接下来的几周我必须开始一个更大的 C 项目 我正在考虑如何开发 TDD 是一个design范例 因此不依赖于任何特定的编程范例 简而言之 在编写代码之前先为代码编写测试
  • 如何在引导选项卡中添加关闭图标?

    我想在引导选项卡中添加一个关闭图标 然后我可以通过单击该图标关闭选项卡 我在下面尝试 但 X 显示的不是与选项卡标题在同一行 close font size 20px font weight bold line height 18px co
  • Spark表如何创建索引?

    我知道 Spark Sql 与 Hive 几乎相同 现在我已经创建了一个表 当我执行 Spark sql 查询来创建表索引时 它总是给我这个错误 SQL 语句中的错误 AnalysisException 创建索引语句中的输入 期望 AS 接
  • 指定的输入源无效

    使用 remix IDE 构建智能合约时 通过以下导入收到无效的输入源指定错误 import https github com aave flashloan box blob Remix contracts aave FlashLoanRe
  • 以极高的精度计算小数?

    出于好奇 我正在编写一个小型 JavaScript 程序来估计数字的值e 由系列 1 n 给出从零到无穷大 问题是 由于 IEEE 754 标准 无论我评估多少个术语 我的答案都会四舍五入到小数点后 16 位 有没有一种方法可以在值达到不考
  • 使用 java 创建快速/可靠的基准测试?

    我正在尝试使用 java 创建基准测试 目前我有以下简单的方法 public static long runTest int times long start System nanoTime String str str for int i
  • 线程环境中的 Clojure 全局变量行为

    鉴于这按我的预期工作 do println resolve a nil def a a println resolve a user a 我想了解为什么这不会 future println resolve b user b shouldn
  • 球互相弹开

    我正在编写这个脚本 其中画布中有 x 个弹跳球 在本例中为 20 个球 我的问题是 如何让它们在撞击时相互弹开 以及在撞击黄色矩形时弹开 var mycanvas document getElementById mycanvas var c
  • 使用 libav 转换 mp4-ts

    我正在尝试使用将 mp4 文件转换为 mpegtslibav 该代码可以工作 但输出的文件无法被任何播放器播放 这里是输入文件 http yt dash mse test commondatastorage googleapis com m
  • 单击按钮后克隆整个表单元素

    我有以下表格
  • 没有.net库的图像裁剪C#

    谁能建议如何裁剪图像 例如 jpeg 而不使用任何 NET 框架结构 仅使用原始字节 因为这是 Silverlight 中唯一 的方法 或者指向一个图书馆 我不关心渲染 我想在上传之前操作 jpg Silverlight 中没有可用的 GD
  • 无法链接到 XCode9 中的插座集合

    我有一些在动画期间随机播放的限制 升级到 XCode9 后 我尝试进行一些调整 编辑器似乎不再允许我向约束集合 IBOutlet 添加约束 我什至创建了一个新项目并尝试制作一个简单的插座系列 但遇到了同样的问题 这是我正在谈论的内容的简短视
  • 删除 PayPal Express Checkout 中的送货地址选项

    我用的是JSscript https developer paypal com docs integration direct express checkout integration jsv4 basic integration 贝宝推荐
  • Google 可以使用邮政信箱自动填写地址表单吗?

    我正在购物车中的结账表单上使用 地点 自动完成功能 参见示例 https developers google com maps documentation javascript examples places autocomplete ad
  • 在Python中使用队列进行线程处理

    我想在 python 中使用线程来下载大量网页 并浏览了以下在其中一个网站中使用队列的代码 它放置了一个无限的 while 循环 每个线程是否连续运行 直到所有线程都完成为止 我是不是错过了什么 usr bin env python imp
  • mongo集合中的数据碎片

    我在一个 mongo 集合中有很多更新 并假设此后文件系统上存在巨大碎片 我主要担心的是 集合将在文件系统上不断增长 而集合 中的数据却没有有价值的增长 您能否证实或反驳我的担忧 这取决于您要进行哪种更新 如果这些更新增加了您的文档 数组推
  • 对于同一 .NET 库的不同目标框架构建,程序集 GUID 属性是否应该有所不同?

    我正在用 C 开发一个 NET 库 它必须解决一系列广泛的目标框架 我想生成一个 nuget 包 它可以根据目标项目的设置正确安装 为了实现这一目标 我使用多个 csproj 文件 它们中的每一个都针对特定的目标框架 例如 MyLibrar
  • 程序集未加载 C#

    我有一个项目Common其中包含一个 log4net CustomAppender 我在所有其他项目中引用该项目并在中配置 log4net 附加程序app config 一切都很顺利 除了一个项目在尝试实例化 Appender 时失败了 输