C# 什么';程序集和类版本的兼容性如何?

C# 什么';程序集和类版本的兼容性如何?,c#,.net,clr,versioning,fileversioninfo,C#,.net,Clr,Versioning,Fileversioninfo,我正在为版本的正确依赖关系版本控制而挣扎。我在一些文章中读到,库中对AssemblyVersion的每次更改都会导致需要重新生成引用此库的所有程序集。如果这是真的,我需要在设计依赖程序集的发布周期时格外小心,对吗 我想亲自验证论文,然后。。。我注意到这根本不是事实 我制作了一个控制台应用程序,它引用了dep1.dll(汇编版本1.0.0.0)并构建了它。然后我将dep1.dll更改为2.0.0.0版本,构建它并将其与1.0.0.0版本交换。运行控制台应用程序时,我预期出现错误“找不到版本为1.0

我正在为版本的正确依赖关系版本控制而挣扎。我在一些文章中读到,库中对AssemblyVersion的每次更改都会导致需要重新生成引用此库的所有程序集。如果这是真的,我需要在设计依赖程序集的发布周期时格外小心,对吗

我想亲自验证论文,然后。。。我注意到这根本不是事实

我制作了一个控制台应用程序,它引用了dep1.dll(汇编版本1.0.0.0)并构建了它。然后我将dep1.dll更改为2.0.0.0版本,构建它并将其与1.0.0.0版本交换。运行控制台应用程序时,我预期出现错误“找不到版本为1.0.0.0的程序集dep1.dll”。你知道吗?没有什么特别的事情发生,应用程序使用了这个库,就像它从一开始就针对那个版本一样

ConsoleApp1/Program.cs

using dep1;
using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            var a = new Class1();
            a.Prop1 = "asdf";
            Console.WriteLine(a.Prop1);
        }
    }

    public class Implementation : Interface1
    {
        public int Super { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
    }
}
dep1/Class1.cs

namespace dep1
{
    public class Class1
    {
        public string Prop1 { get; set; }
    }

    public interface Interface1
    {
        int Super { get; set; }
    }
}
正如您所看到的,接口也是如此

你能解释一下为什么我的测试不起作用吗?这个,其他的答案()和哈克德的文章真的把我弄糊涂了