【发布时间】:2019-08-29 14:52:36
【问题描述】:
我遇到了一种使用反射在脚本任务中加载程序集的解决方案...
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
if (args.Name.Contains("ssisHelper"))
{
string path = @"c:\temp\";
return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "ssisHelper.dll"));
}
else if (args.Name.Contains("xxx"))
{
string path = @"c:\temp\";
return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "xxx.dll"));
}; return null;
这很好用,但我的问题是它只适用于一个程序集。有加载多个程序集的解决方案吗?
我正在使用 Visual Studio 2015 的数据工具,我正在尝试加载两个无法添加到 GAC 的 dll。我正在使用 4.0 框架,但如果需要,我可以达到 4.6.1。
编辑:以防万一需要提及,AssemblyResolve 事件处理程序只能在程序启动时调用一次。我打电话给
appDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
【问题讨论】:
标签: c# visual-studio ssis sql-server-data-tools