使用DotNet(Core / Standrad)时,我如何在构建时使用项目版本?

默克尔·格鲁特(Merkle Groot)

我可以通过将标签添加到.csproj文件来设置项目版本,但是我想在管道中以编程方式更改该值。

我凑在一起编写了一个脚本来完成该任务,但是感觉很草率。

那一定是通过CLI做到这一点的一种方法,但我只是没有找到它。

有没有我要忽略的与此类似的命令?

dotnet build -project-version 1.2.3

如果不存在任何命令,您如何设置管道中的项目构建版本?

乔尔·弗莱希曼

我在管道中使用以下内容。

dotnet build -p:VersionPrefix="$(buildNumber)" -p:VersionSuffix="$(buildPipline)"

在我的csproj文件中

 <PropertyGroup>
    ...
    <VersionPrefix>1.0.1</VersionPrefix>
    <VersionSuffix>local</VersionSuffix>
  </PropertyGroup>

要获取代码中的版本号,我使用以下代码

public static string Version => System.Reflection.Assembly.GetEntryAssembly().GetCustomAttribute<System.Reflection.AssemblyInformationalVersionAttribute>().InformationalVersion;

如果您使用的是Azure管道,则可以添加一个powershell脚本,该脚本根据日期和时间声明版本。

 Write-Host "Generating Build Number"
$baseDate = [datetime]"01/01/2019"
$currentDate = [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId((Get-Date), 'Eastern Standard Time')
$interval = NEW-TIMESPAN –Start $baseDate –End $currentDate
$days = $interval.Days
$hour = $currentDate.ToString("HH")
$minute = $currentDate.ToString("mm")

$version = "1.0.$days.$hour$minute"
$version_npm = "1.$days.$($currentDate.ToString("Hmm"))"
if($currentDate.ToString("HH") -eq "00")
{
    $version_npm = "1.$days.25$($currentDate.ToString("mm"))"
}
Write-Host "Version: $version"
Write-Host "npm Version: $version_npm"

Write-Host "##vso[task.setvariable variable=buildNumber]$version"
Write-Host "##vso[task.setvariable variable=buildNumber_npm]$version_npm"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Gradle构建项目时如何获取实现版本

使用项目宏时如何提高循环性能?

使用postgres的dotnet core 2.2 EntityFramework

当使用`dotnet build`或`dotnet publish`时如何为参考项目指定构建配置?

当我们使用 .net core 3.1 时,如何正确进行 dotnet 发布?

您如何在dotnet Core中使用DBContext

使用monodevelop调试dotnet core 2.0项目

使用MSBuild构建gRPC dotnet核心项目时如何包括自定义目录

如何使用dotnet core和Polly添加动态重试策略

如何使用Dotnet Core获取Redis上的密钥的到期时间?

使用Gradle构建Cordova项目时覆盖Java版本

如何在我的Android项目中使用其他API版本作为构建目标?

如何使用“ dotnet”工具构建.sqlproj项目?

在使用Http.sys和URLPrefix时,如何配置dotnet core 3来提供React SPA?

使用dotnet core 2.0的Google oauth的高清参数

使用节点服务从dotnet Core 2创建PDF文档

在dotnet core 3.0中不使用DataMember属性

使用dotnet run运行.NET Core App的多个并行实例

无法在Dotnet Core 3.0中使用Redis缓存

.NET Core-何时使用“ dotnet new sln”

使用dotnet core的Swagger文档的文件返回类型

使用dotnet core解压缩.taz文件

使用dotnet core \ c#删除GCP Spanner实例

dotnet core 使用数据种子生成迁移脚本

如何在 EF Core / Dotnet Core 中进行查询而不使用连接

如何在我的Scrapy蜘蛛代码中使用项目加载器?

使用Couchbase dotnet sdk时,MacOS上的DotNet Core 2.0会收到httpclient触发的libcurl和ssl错误

使用Grunt构建时,如何在index.html中插入版本号?

当我使用sbt来构建一个scala项目时,scala版本的关系是什么?