簡體   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