簡體   English   中英

為什么同一個DLL會有不同的版本信息?

[英]Why are there Different versions info for the same DLL?

我最近第一次遇到Could not use file or assembly version 問題 我對assemblyBinding 的方式和原因有了一些了解>

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Runtime" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="4.1.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

但是我仍然不確定其他版本信息的用法?

同一個 dll 的不同版本信息

問:- 運行時版本(紅框)、文件版本(黃框)和綠框的任何其他用途是什么?

Noob 問:- 為什么我們不能為每個 DLL 提供一個獨特的版本?

Runtime版本有什么用(紅框)

這是此引用將使用的運行時 對於 .Net 4.8 參考和任何其他 .Net 框架 4.x 參考,這將始終為 4.0.30319。 由於 .Net framework 3.x 和更早版本現在並不常見,我認為這不再很有用了。 我認為這甚至不會顯示在 .Net 標准/核心項目中。

文件版本(黃框)和綠框的任何其他用途

參考框中的文件版本、產品版本和版本,都使用了文件中的不同字段。 所以沒有什么說它們必須相同。 但是,如果您只是創建一個常規庫項目並構建一個 dll,編譯器應該將它們全部設置為相同的值。 pure.Net dll 通常相當簡單,但其他類型的 dll 可能有不同的版本控制實踐,使事情變得更復雜。

為什么我們不能為每個 DLL 提供一個唯一的版本?

我不確定你的意思是什么。 但是版本控制很困難 當庫使用第三方庫的不同版本時,會出現一個常見問題。 有可能這兩個版本在某些方面有所不同,而且您處理這種情況的任何方式都有可能破壞某些東西

我建議閱讀 John Skeet關於 .NET 版本控制問題選項的文章,以便更好地了解潛在問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM