C# 如果给定的程序集是正确的,CLR如何知道哪一个?

C# 如果给定的程序集是正确的,CLR如何知道哪一个?,c#,.net,vb.net,clr,C#,.net,Vb.net,Clr,如果我们有一个使用.NET库的.NET可执行文件,CLR如何确保您使用的是正确版本的dll?CLRwise首先,什么才是“正确的dll版本” 它只看版本吗?还将查看构建时间(?)。也许它看起来像个杂烩什么的 多谢它采用编译过程中使用的名称,由完全限定名称标识,该名称不仅包括程序集名称,还包括完整的版本信息和数字签名指纹(如果有的话)。您可以开始了解.NET版本控制 其他答案已经涵盖了它的本质 基本上,框架会检查程序集名称、版本和签名以找到匹配项。 您可以从代码(AssemblyVersion属性

如果我们有一个使用.NET库的.NET可执行文件,CLR如何确保您使用的是正确版本的dll?CLRwise首先,什么才是“正确的dll版本”

它只看版本吗?还将查看构建时间(?)。也许它看起来像个杂烩什么的


多谢

它采用编译过程中使用的名称,由完全限定名称标识,该名称不仅包括程序集名称,还包括完整的版本信息和数字签名指纹(如果有的话)。

您可以开始了解.NET版本控制


其他答案已经涵盖了它的本质

基本上,框架会检查程序集名称、版本和签名以找到匹配项。
您可以从代码(AssemblyVersion属性)设置名称和版本(以及更多内容!),也可以在VS的帮助下轻松地对其进行签名

签名包括创建一个.pfx文件(VS将为您生成一个),并在生成设置中检查“签名程序集”。这将确保多个程序集可以以相同的名称和版本共存。

(因此,如果两家公司意外地创建了两个同名的东西,您仍然可以将它们一起使用。)

您能更好地解释一下数字签名吗?如何以及何时完成?另外,假设我创建了一个Hello world应用程序,并构建了10次。如果我不更改其代码,output.exe会有任何不同吗?版本会改变吗?请阅读.NET的任何介绍-“代码签名”是您想要的主题。如果oyu需要基础知识,没有什么比阅读文档更好的了。