有没有办法关闭自动注册功能,以便它忽略同一文件夹中的任何dll文件?



我有4个文件:Launcher.exe,Application.exe,Nlog.dll和Nlog.Windows.Forms.dll。

启动器.exe用于更新应用程序.exe和Nlog文件,因此启动器.exe具有自己的Nlog.dll合并副本。如果我删除Nlog.Windows.Forms.dll从文件夹中删除,则一切正常,并且主文件夹中的Nlog.dll可以更新,因为它未使用。

如果 NLog.Windows.Forms.dll 位于同一文件夹中,则无法更新 Nlog.dll。我相信这是因为NLog是自动检测Windows表单dll,它反过来锁定Nlog.dll和Nlog.Windows.Forms.dll这是我不想要的!

有没有办法阻止这种情况?我可以禁用自动检测吗?我不使用配置文件,我用代码构建我的配置:

Dim test As New NLog.Config.LoggingConfiguration
Dim logToFile As New NLog.Targets.NullTarget("MyApp")
test.AddRuleForAllLevels(logToFile)
NLog.LogManager.Configuration = test
MyApp.nLogger = NLog.LogManager.GetCurrentClassLogger

在创建第一个 NLog Logger (GetLogger/GetCurrentClassLogger) 或分配 LogManager.Configuration 之前,您可以执行以下操作:

Dim configFactory As New NLog.Config.ConfigurationItemFactory(GetType(NLog.ILogger).Assembly)
NLog.Config.ConfigurationItemFactory.[Default] = configFactory 
Dim test As New NLog.Config.LoggingConfiguration
Dim logToFile As New NLog.Targets.NullTarget("MyApp")
NLog.LogManager.Configuration = test
MyApp.nLogger = NLog.LogManager.GetCurrentClassLogger

请原谅我可能损坏的 VB.NET 语法。

相关内容

  • 没有找到相关文章

最新更新