gpt4 book ai didi

.net - 带有 dotnet pack 的软件包版本始终为 1.0.0

转载 作者:行者123 更新时间:2023-12-03 06:32:42 27 4
gpt4 key购买 nike

TLDR:dotnet pack 在为程序集创建 nuget 包时在哪里提取版本信息?

我有一个库,我已使用 project.json 从 .NET 4.6.1 项目转换为 .NET Core 项目。对于我在此期间的 CI(使用 TFS 2015 vnext),我将获取我的版本号并将 project.json 文件中的版本号替换为新版本。 dotnet pack 命令会很好地选择版本,并使用更新的版本号创建一个新包。

上周,我从 TFS 2015 升级到 TFS 2017。结果,project.json 被更新的 .csproj 文件替换。我已经更新了我的 CI。在 CI 期间 - 我更新了 /Properties/AssemblyInfo.cs 文件,将 AssemblyVersion 标记替换为当前构建的版本。然后我构建解决方案 - 构建得很好。然后我打包解决方案。

但是,尽管在 AssemblyInfo.cs 中将 AssemblyVersionAssemblyFileVersion 设置为正确的内部版本号 - dotnet pack code> 仍在生成 *.1.0.0.nupkg 的 .nupkg 文件。

我错过了什么?

这是我的打包命令:

dotnet pack $projectFile -o $currentDirectory

最佳答案

更好的是,在 dotnet pack 命令上指定 /p:Version=$(Build.BuildNumber) (TFS/VSTS),它将使用 nuget 包中指定的版本进行构建。示例(非 TFS 特定):

dotnet pack .\src\example\example.csproj -o c:\published\example -c Release /p:Version=1.2.3

示例(特定于 TFS)<- 我们使用 powershell 脚本步骤将其用于 TFS 2017 打包。

dotnet pack $(Build.SourcesDirectory)\src\example\example.csproj -o $(Build.ArtifactStagingDirectory)\Pack -c Release /p:Version=$(Build.BuildNumber)

注意:它不会更新包引用版本。

关于.net - 带有 dotnet pack 的软件包版本始终为 1.0.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42797993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com