繁体   English   中英

加载程序集的最新版本

[英]Loading latest version of an assembly

我的目标是SQL Server SMO库的版本10。 我想设置我的应用程序,使其使用机器上安装的最新版本的SMO库,因为最终用户的版本可能是10或11。

如何设置Visual Studio C#项目以这种方式运行? 我以常规方式加载了程序集,并且“特定版本”为false。 看来“特定版本”只是一个编译时的更改,但是在运行时,它仍将查找具有特定版本的程序集。

在仅具有hte程序集版本11的机器上进行测试时,我的应用程序(针对版本10)无法找到版本10程序集,最终无法加载程序集。

有没有办法让程序加载程序集的最新版本? 我一直在查看AppDomain.AssemblyResolve,但不确定是否再次跳过Assembly(也许未指定版本)是否可行。

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;
    }

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM