Nuget 不再识别 assemblyinfo.cs 版本

Posted

技术标签:

【中文标题】Nuget 不再识别 assemblyinfo.cs 版本【英文标题】:Nuget does not recognize assemblyinfo.cs version any longer 【发布时间】:2021-08-13 18:39:30 【问题描述】:

我们有一个 DLL,我们将其打包到一个 nuget 包中。 DLL 的 assemblyinfo.cs 包括以下条目:

[assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyFileVersion("1.0.*")]

使用以下 nuget 命令后:

nuget pack dllproject.csproj -Symbols

我们得到一个这样的nuget包:

dllproject.1.0.1215.16457.nupkg

这适用于我的同事和我的机器,此外还适用于我们的构建机器。

现在我们不得不切换到新的构建机器。设置系统后,每次使用nuget命令都会导致以下结果:

dllproject.1.0.0.nupkg

似乎缺少某些东西,因此版本的自动增量不再起作用。

有人知道我该怎么做才能再次起作用吗?

编辑: 我发现这仅在虚拟机或 Proxmox/KVM 等虚拟化环境中不起作用。有人知道为什么吗?

【问题讨论】:

[assembly: AssemblyVersion("1.0.*")] 使用时间戳来填写最后两个字段。我不知道为什么会这样,但我宁愿使用 gitversion 之类的东西来创建版本信息。 【参考方案1】:

问题的根本原因是 nuget.exe 5.9.1 中的错误 将详细程度设置为详细后,我可以看到一个错误,而 试图读取程序集信息。 使用像 4.7.3 这样的旧版本的 nuget.exe 解决了这个问题。 一切正常。

【讨论】:

以上是关于Nuget 不再识别 assemblyinfo.cs 版本的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 无法识别已安装 NuGet 包的头文件

nuget 无法识别已安装的软件包

Nuget PM 中无法识别 Entity Framework Core 命令

在构建后事件上更新本地 nuget 包

git不识别exe文件

运行 OctoPack 以创建包含 DEBUG 程序集的 nuget 包