C# 在 .NET LIBRARY PROJECT 中使用命名空间引用 dll 路径动态更改

C# Change using namespace reference dll path dynamically IN .NET LIBRARY PROJECT

我有 一个 class 库 .net 项目(没有配置,没有 exe 文件) 我有这样的东西;

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Reflection;
using System.Web.UI.WebControls;
using eBAControls; *<-- I want this dll to be loaded from a path in runtime.*

出于将来的原因,我必须制作 copyLocal false,因此我需要能够在运行时引用 dll。与当前 dll 在同一文件夹中的其他第 3 方 dll 不会导致任何问题 但是 eBAControls dll 与当前 dll 不在同一文件夹中,因此它给出了错误: Could not load file or assembly 'eBAControls...

出于某些编码和性能原因,我也不能为此使用反射,因此需要将其添加到参考文献中...

很快我想要的是

using eBAControls = @"somepath"; <- that is set dynamically for ex while one of my methods are being executed etc...

如果将事件处理程序放在 AppDomain.AssemblyResolve. See Resolving Assembly Loads

上,则可以从任何地方加载程序集

这是一个包含基本要素的博客 post。关键是时机。您必须在 引用程序集的第一个方法被 JITted 之前 附加事件。 https://blogs.msdn.microsoft.com/dbrowne/2014/06/25/how-to-load-an-assembly-in-a-ssis-script-task-that-isnt-in-the-gac/