如果我从不使用 GAC,我还需要汇编版本吗?

问题描述 投票:0回答:1

直到今天,我才在我的 .NET Core/5/6 项目中使用汇编版本。
我知道不时将不同的程序集版本加载到 GAC 中是有意义的,但在我自己的开发过程中我从不使用 GAC。

我也读过很多次,不再推荐使用它,因为所有必需的 Dll 将保留在项目的本地目录中。

因此我的程序集都有版本 1.0.0.0 我只使用 NuGet 包来跟踪它们的版本控制。

然而,我刚刚读了这篇文章,看来我应该重新考虑我的汇编版本:

本文内容如下:

❌ 不要有固定的 AssemblyVersion。

虽然不变的 AssemblyVersion 避免了绑定重定向的需要,但这意味着只能在全局程序集缓存 (GAC) 中安装程序集的单个版本。此外,如果另一个应用程序使用重大更改更新 GAC 程序集,则引用 GAC 中程序集的应用程序将中断。

但是,这里只提到了 GAC 的原因。

如果我为我的所有库创建 NuGet 包并遵循语义版本控制 2.0 原则,我的程序集版本就不会出现问题。

如果我从不使用 GAC,我还需要关心汇编版本吗?

c# .net-core nuget semantic-versioning assemblyversions
1个回答
0
投票

程序集版本也是程序集标识的一部分,这意味着当它发生变化时,技术上它被认为是不同的程序集;在 .NET Framework 上,您需要通过在应用程序级别(通过配置)使用“程序集绑定重定向”来解决这个问题;这很尴尬,can 导致应用程序损坏 - 幸运的是,这在 .NET Core / .NET 5+ 中几乎完全成为过去,但是:由于这段历史,许多流行的公共图书馆do保留固定程序集版本,正是这样它不会经常破坏 .NET Framework 消费者 - 使用其他程序集属性来传达实际的完整版本信息。

简短版:实际上,我认为您可以忽略该建议。

© www.soinside.com 2019 - 2024. All rights reserved.