使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件预加载或按需加载依赖程序集。

在带有module的prism的框架里使用log4net时,出现了这样一个问题:

Cannot resolve dependency to assembly ‘log4net, Version=2.0.14.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a’ because it has not been preloaded. When using the ReflectionOnly APIs, dependent assemblies must be pre-loaded or loaded on demand through the ReflectionOnlyAssemblyResolve event.”

无法解析对程序集“log4net,Version=2.0.14.0,Culture=neutral,PublicKeyToken=669e0ddf0bb1aa2a”的依赖关系,因为它尚未预加载。使用ReflectionOnly API时,必须通过ReflectionOnlyAssemblyResolve事件预加载或按需加载依赖程序集。
使用的初衷是想要在主程序使用日志,故只在主程序中进行了以下操作:
1.添加log4net引用
2.添加log4net.config配置文件并添加配置信息
3.在配置文件属性中修改输出事件属性,改为始终复制到输出文件夹,保证配置生效
4.在AssemblyInfo.cs中添加配置文件的路径,以使用log4net

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log/Log4net.config", Watch = true)]

按照上述步骤操作结束后对程序进行编译生成,主程序可以编译通过,但是module却出现了如标题信息提示的错误
几经检查确认后,配置方式无问题,原因是module模块对主程序进行了引用,而未对log4net进行引用,才产生了这样的问题,解决方法是直接在module中对log4net进行引用即可。这样不管是主体程序还是module都可以使用日志了。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Windows 加载程序是指在 Windows 操作系统启动自动运行的程序加载程序通常用于启动后台服务、驱动程序或其他要在计算机启动运行的应用程序。 以下是在 Windows 中设置加载程序的步骤: 1. 打开 Windows 任务管理器。可以通过按下 `Ctrl + Shift + Esc` 快捷键来打开任务管理器。 2. 点击“启动”选项卡。 3. 在“启动”选项卡中,可以看到当前计算机启动自动运行的所有程序列表。 4. 右键单击要设置为加载程序程序,选择“打开文件所在位置”。 5. 在程序所在的文件夹中,按住 Shift 键并右键单击空白处,选择“在此处打开命令窗口”。 6. 在命令窗口中,输入 `mklink "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\[程序名].lnk" "[程序路径]"` 命令,其中 `[程序名]` 是要设置为加载程序程序名称,`[程序路径]` 是要设置为加载程序程序的完整路径。例如,如果要将 Google Chrome 浏览器设置为加载程序,并且其安装路径为 `C:\Program Files (x86)\Google\Chrome\Application\chrome.exe`,则命令应为 `mklink "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\Google Chrome.lnk" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"`。 7. 按下 Enter 键执行命令。如果命令执行成功,则会在“启动”文件夹中创建一个指向加载程序的快捷方式。 8. 重新启动计算机,加载程序将在 Windows 启动自动运行。 要注意的是,设置加载程序要以管理员身份运行命令窗口。如果没有管理员权限,则可能无法创建加载程序的快捷方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值