Kar*_*hik 5 .net continuous-integration nuget devops azure-devops
我正在尝试使用 azure devops 创建 Nuget 包。我想在创建稳定版本之前创建包的预发行版本。当前正在尝试打包 .netstandard 2.0 应用程序。
我尝试过的 -
尝试在 csproj - 中设置版本<Version>1.0.6-alpha</Version>
。这确实有效,但我不确定当我想将其升级为稳定版本时如何删除该 alpha 标签
我希望包从程序集中获取版本(不使用自动版本控制),例如,如果程序集版本是 1.0.0,我需要一个 1.0.0-alpha 的包,然后在转移到生产环境时需要 1.0.0。我可以在网上看到许多使用预设版本号(在变量选项卡中)和附加版本号等的解决方案,但我正在寻找一种可以使用程序集本身的版本而不是自定义定义的方法。这是解释包版本控制的链接
下面是我尝试过的管道
如何使用程序集中的版本号创建预发布的 nuget 包
由于您正在尝试打包.netstandard 2.0
应用程序,我们可以使用dotnet pack
,版本是从项目定义(以前的project.json
,现在的*.csproj
)中提取的,而不是程序集AssemblyInfo.cs
。
从project.json到csproj迁移文档,您可以使用项目文件中的VersionPrefix
和属性:VersionSuffix
.csproj
<PropertyGroup>
<VersionPrefix>1.0.0</VersionPrefix>
<VersionSuffix>alpha</VersionSuffix>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
根据你的要求:
if the assembly version is 1.0.0 i need a package that is 1.0.0-alpha and later 1.0.0 when its moved to production
VersionSuffix
为了解决这个问题,我设置了is的值null
,因此,它是:
<PropertyGroup>
<VersionPrefix>1.0.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
然后我们使用DotNetCoreCLI
自定义的 donet任务而不是nuget pack
带有参数的任务--version-suffix "alpha"
:
结果是:
1.0.0-alpha
在这种情况下,当程序集版本为 时,我们可以生成包版本为1.0.0
。
另一方面,我们可以--version-suffix "alpha"
在将其转移到生产环境时删除该参数:
现在,这应该就是您想要的。
希望这可以帮助。
归档时间: |
|
查看次数: |
5162 次 |
最近记录: |