我的目标是 SQL Server SMO 库的版本 10。我想设置我的应用程序,使其使用安装在机器上的最新版本的 SMO 库,因为最终用户可能拥有版本 10 或 11。
如何将我的 Visual Studio C# 项目设置为以这种方式运行?我以通常的方式加载了程序集,并且特定版本 = false。似乎特定版本只是编译时的变化,但在运行时,它仍然会寻找具有特定版本的程序集。
在只有版本 11 的 hte 程序集的机器上进行测试时,我的应用程序以版本 10 为目标,无法找到版本 10 的程序集,最终无法加载程序集。
有没有办法让程序加载最新版本的程序集?我一直在查看 AppDomain.AssemblyResolve,但不确定再次加载程序集是否可行,也许没有指定版本。
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
Logger.Error("Failed to load assembly: " + args.Name + " from " + args.RequestingAssembly);
var assembly = Assembly.Load(args.Name);
return assembly;
}