0

我的目标是 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;
    }
4

1 回答 1

0

这取决于您使用的目标 .Net Framework 版本。尝试定位您要加载的程序集所针对的 .Net Framework 版本,并使用特定版本 = false。它将自动加载所需的版本。

于 2013-11-19T07:08:09.760 回答