VSTS-使用AssemblyInfo并附加内部版本号的版本NuGet
我正在尝试在VST上为我的NuGet包设置CI部署,以便在进行新的提交时,打包一个包并将其发送到我的提要。不幸的是,我不知道从哪里开始;我在版本控制方面的大部分经验都是手动更新解决方案中的文件,因此出现了这个问题,如果有更好的方法,请告诉我 我希望名称是AssemblyInfo.cs文件(“0.0.1”)中的版本号,并附加自动生成的生成号。所以最终的结果看起来像“0.0.1.35”;很多建议都是使用这个,但我真的希望保持版本号干净,这样我就可以发布包了 我正在使用'NuGet pack'任务,因此我只有'Use date time'、'Use environment variable'或'Use the build number'选项VSTS-使用AssemblyInfo并附加内部版本号的版本NuGet,nuget,azure-devops,Nuget,Azure Devops,我正在尝试在VST上为我的NuGet包设置CI部署,以便在进行新的提交时,打包一个包并将其发送到我的提要。不幸的是,我不知道从哪里开始;我在版本控制方面的大部分经验都是手动更新解决方案中的文件,因此出现了这个问题,如果有更好的方法,请告诉我 我希望名称是AssemblyInfo.cs文件(“0.0.1”)中的版本号,并附加自动生成的生成号。所以最终的结果看起来像“0.0.1.35”;很多建议都是使用这个,但我真的希望保持版本号干净,这样我就可以发布包了 我正在使用'NuGet pack'任务,因
任何帮助都将不胜感激 您是否希望文件版本与NuGet软件包版本匹配?如果是这样,您可以使用以下解决方案 默认情况下,NuGet pack命令将使用文件版本作为包版本。要使用此功能获得所需的预期输出,需要在生成过程中更新文件版本。这可以通过VSTS市场的任务轻松完成。还有许多其他类似的任务,但此任务仅允许您修改文件版本的修订部分,而不受主版本、次版本和生成版本的影响
注意:这是使用NuGet任务的版本2.*和Update Assembly info任务的版本2.*测试的。简单工作流使用环境变量:
Write Host“##vso[task.setvariable=packageVersion;]xxx”
()更新PowerShell脚本(步骤2)中的变量值使用环境变量
;环境变量:packageVersion
)为此,我编写了此PowerShell脚本:
param
(
[parameter()][string] $FolderPath,
[parameter()][string] $FileExtension
)
$RegularExpression = [regex] 'AssemblyInformationalVersionAttribute\(\"(.*)\"\)'
$path = Get-Location
# Get the files from folder that ends in $FileExtension content
$assemblyInfoFile = (Get-ChildItem -Path $FolderPath -Force -Recurse -File -Include *$FileExtension).Name
# Get the Content of the file and store it in the variable
$fileContent = Get-Content $FolderPath/$assemblyInfoFile
foreach($content in $fileContent)
{
$match = [System.Text.RegularExpressions.Regex]::Match($content, $RegularExpression)
if($match.Success) {
$version = $match.groups[1].value
}
}
# Check if variable has content
if ($version)
{
Write-Host $version
Write-Host ##vso[task.setvariable variable=packageversion]$version
}
要在本地运行脚本,请执行以下操作:
.\powershellScriptName.ps1 -FolderPath "c:\Git\" -FileExtension "AssemblyInfo.cs"
FolderPath:输出生成解决方案的路径文件扩展名:名称的一部分,用于搜索版本 VSTS步骤:
**项目技术:.netcore感谢您提供的解决方案,它很酷,但在使用.nuspec文件时如何实现这一点,请明确,您希望使用“更新程序集信息”任务,但不是对项目文件使用NuGet pack,而是要对nuspec文件使用它?