首页 > 解决方案 > 如何在使用 pack 命令生成 NuGet 包时为所有项目保持相同的版本

问题描述

我有以下 .NET Framework 项目的结构: -->ProjectSoln -------->ClassLibProj1 -------->ClassLibProj2 -------->ConsumerLibProj3 我在解决方案级别定义了 GlobalAssemblyInfo.cs 文件,并在所有 3 个项目中添加了对该文件的引用。ConsumerLibraryProj3 具有对 ClassLibraryProj1 和 ClassLibraryProj2 的项目引用。我在包含 $version$ 的 ConsumerLibProj3 中添加了 nuspec 文件。我正在使用以下命令为 ConsumerLibraryProj3 生成 Nuget 包 nuget pack ConsumerLibProj3.csproj -includereferencedprojects -verbosity detailed 包生成成功,但是包中的ClassLibProj1和ClassLibProj2 dll的版本不是最新的。例如,ConsumerLibProj3.dll 包的版本为 1.0.0.2,而 ClassLibProj1.dll 和 ClassLibProj2.dll 的版本为 1.0.0.1。期望所有三个 dll 都应该具有相同的版本,因为该版本来自 GlobalAssemblyInfo.cs 文件。该解决方案使用 .NET Framework 类型的项目。任何帮助将不胜感激。

标签: visual-studionuget

解决方案


最后,我能够通过在打包时强制 nuget 使用发布配置来解决这个问题。令人惊讶的是,我正在使用 Release 配置文件构建解决方案,但 nuget 仍然以某种方式感到困惑。我使用了以下命令

nuget pack ConsumerLibProj3.csproj -includereferencedprojects -build -properties configuration=release -verbosity detailed

谢谢您的帮助。


推荐阅读