我正在尝试为 Fusion Log Viewer 做一个演示,希望在自定义目录中查看程序集绑定日志。
我刚刚为此创建了一个小型演示应用程序,如下所示:
一个仅包含一个方法 GetString() 并将程序集版本设置为 1.0.0.0 的小型类库项目
namespace ClassLibrary1
{
public class Class1
{
public static string GetString()
{
return "yes";
}
}
}
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
引用上述库并具有以下代码的小型控制台应用程序项目:
参考 ClassLibrary1.dll 版本 1.0.0.0
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(ClassLibrary1.Class1.GetString());
Console.ReadLine();
}
}
}
我构建了这个控制台应用程序并关闭了 Visual Studio,然后运行可执行文件。它按预期打印“是”。
然后,我将 ClassLibrary1 的 AssemblyInfo 升级如下,将其版本号更改为 2.0.0.0:
[assembly: AssemblyVersion("2.0.0.0")]
[assembly: AssemblyFileVersion("2.0.0.0")]
用这个 2.0 版本替换控制台应用程序内的库并再次运行可执行文件后,它仍然可以工作并打印“是”。
为什么当引用的 DLL 中不存在时它仍然工作?期望应该是在 Fusion Log Viewer 的自定义目录中创建程序集绑定日志失败。
谁能解释一下,为什么它仍然有效?