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

Is there any way to switch off Auto Register Feature so that it ignores any dll files in the same folder?

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

Launcher.exe 用于更新 Application.exe 和 Nlog 文件,因此 Launcher.exe 拥有自己的 Nlog.dll 合并副本。如果我删除 Nlog.Windows.Forms.dll 从文件夹中删除它一切正常,并且主文件夹中的 Nlog.dll 可以更新,因为它没有被使用。

如果 NLog.Windows.Forms.dll 在同一文件夹中,则 Nlog.dll 无法更新。我相信这是因为 NLog 正在自动检测 Windows Forms 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 语法。