<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C# 引用不同版本dll

      問題描述

      一個項目引用不同版本的同一dll,會引發以下報錯:

      未能加載文件或程序集“xxx, Version=x.x.x.x, Culture=neutral, PublicKeyToken=xxxxxxxxxxxx”或它的某一個依賴項。系統找不到指定的文件
      

      解決方式

      方式1:通過配置文件

      配置文件一般在你的應用程序項目下,形如(app.config或web.config),如果沒有可以自己添加一個;我認為在非主程序的項目中添加xxx.config應該是沒有用的
      然后在配置文件中,增加配置節點;然而,不同場景有不同的解決方式,下面說明。

      場景一 以高版本兼容

      例如:新舊項目都引用Newtonsoft.Json,但是不同版本。需要以最高版本兼容。 

      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30AD4FE6B2A6AEED" culture="neutral"/>
            <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/>
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      

      場景二 同一dll兩種版本共存

      例如:項目自己引用log4net.dll 版本1.2.13.0 。添加第三方某個dll,第三方依賴log4net.dll版本1.2.9.0,項目中需要兩種版本共存。
      這里還分兩種情況,dll的publicKeyToken相同還是不同 (publicKeyToken查詢見說明1

      publicKeyToken相同

      配置方法:

      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
            <codeBase version="1.2.13.0" href="bin\log4netdll\1_2_13\log4net.dll" />
            <codeBase version="1.2.9.0" href="bin\log4netdll\1_2_9\log4net.dll" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      
      publicKeyToken不同

      配置方法:

      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
            <codeBase version="1.2.13.0" href="bin\log4netdll\1_2_13\log4net.dll" />
          </dependentAssembly>
          <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="b32731d11ce58905" />
            <codeBase version="1.2.9.0" href="bin\log4netdll\1_2_9\log4net.dll" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
      

      說明
      1.publicKeyToken獲取方式:使用vs的Tools Command Prompt命令行工具,輸入:SN -T "path",例如:

      C:\Program Files (x86)\Microsoft Visual Studio 11.0>SN -T "D:\project\liberary\External\log4net.dll"
       
      Microsoft(R) .NET Framework 強名稱實用工具 版本 4.0.30319.17929
      版權所有(C) Microsoft Corporation。保留所有權利。
       
      公鑰標記為 b32731d11ce58905
      

      方式2:通過代碼

      可以在主程序入口函數中添加程序集加載失敗的事件訂閱;當程序集加載失敗后,可以自己指定從哪個目錄加載程序集文件。
      下面以WPF程序為例,在app.xaml.cs的構造函數中加入如下事件訂閱:

      // 訂閱程序集解析失敗事件
      AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
      

      然后在事件響應函數中做邏輯處理

      /// <summary>
      /// 當CLR無法找到程序集時觸發此方法
      /// </summary>
      private static Assembly OnAssemblyResolve(object sender, ResolveEventArgs args)
      {
          // 獲取程序集名稱
          string assemblyName = new AssemblyName(args.Name).Name;
      
          // 定義你要查找的子目錄
          string subDirectory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "SubDirectory");
      
          // 構造完整路徑
          string assemblyPath = Path.Combine(subDirectory, $"{assemblyName}.dll");
      
          // 如果文件存在,則加載它
          if (File.Exists(assemblyPath))
          {
              return Assembly.LoadFrom(assemblyPath);
          }
      
          // 否則返回 null 表示仍然找不到
          return null;
      }
      

      參考文獻
      .Net Framework中的AppDomain.AssemblyResolve事件的常見用法、問題,以及解決辦法
      msdn對配置詳解
      引用不同版本dll

      posted @ 2025-08-20 13:29  BigBosscyb  閱讀(82)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 深夜在线观看免费av| 国产精品无码久久久久| 日本熟妇色xxxxx| 激情综合色区网激情五月| 国产精品性视频一区二区| 亚洲一区二区在线无码| 婷婷99视频精品全部在线观看| 亚洲黄色片一区二区三区| 亚洲中文精品久久久久久不卡| 国产不卡一区二区精品| 婷婷丁香五月深爱憿情网| 国产精品久久久久AV福利动漫 | 九九热精品免费视频| 亚洲国产日韩一区三区| 连州市| 亚洲高清国产拍精品熟女| 中文字幕在线国产精品| 波多野结衣一区二区三区高清av| 亚洲天堂成人一区二区三区| 国产中文三级全黄| 亚洲av无码精品蜜桃| 久久天堂无码av网站| 宅男久久精品国产亚洲av麻豆| 亚洲精品无码你懂的| 久久99精品久久久久久9| 91老肥熟女九色老女人| 中文字幕有码高清日韩| 亚洲国产精品高清线久久| 女高中生强奷系列在线播放| 亚洲成人av综合一区| 亚洲人成人日韩中文字幕| 久章草在线毛片视频播放| 华阴市| 久久精品亚洲成在人线av麻豆| 日本一道一区二区视频| 人妻中文字幕亚洲精品| 国产成人自拍小视频在线| 双腿张开被5个男人调教电影| 拜泉县| 97se亚洲综合自在线| 亚洲一区二区三区在线播放无码|