自动获取版本号,从文件版本号获取

This commit is contained in:
zqm
2025-12-23 09:57:00 +08:00
parent 4ca836df37
commit 4e12c1ea6f
3 changed files with 24 additions and 6 deletions

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyVersion("1.0.1.0")]
[assembly: AssemblyFileVersion("1.0.1.0")]

View File

@@ -45,16 +45,16 @@ namespace JoyD.Windows.CS
/// <returns>计算得到的CRC32校验值</returns>
public static uint CalculateCRC32(byte[] data)
{
return CalculateCRC32(0xFFFFFFFF, data);
return CalculateCRC32(data, 0xFFFFFFFF);
}
/// <summary>
/// 支持增量计算的CRC32-MPEG2算法实现
/// </summary>
/// <param name="crc">初始CRC值用于增量计算</param>
/// <param name="crc">上次CRC值用于增量计算首次为0xFFFFFFFF</param>
/// <param name="data">要计算CRC32的数据字节数组</param>
/// <returns>计算得到的CRC32校验值</returns>
public static uint CalculateCRC32(uint crc, byte[] data)
public static uint CalculateCRC32(byte[] data, uint crc = 0xFFFFFFFF)
{
uint polynomial = 0x04C11DB7;

View File

@@ -10,7 +10,25 @@ $targetDllName = "JoyD.Windows.CS.Utils.dll" # 保持与AssemblyName一致
# NuGet包元数据配置 - 在此处修改所有元数据
$packageId = "com.joyd.utils"
$version = "1.0.0.0" # 更新版本号以确保用户安装的是修复后的版本
# 从AssemblyInfo.cs的AssemblyFileVersion获取版本号
$assemblyInfoPath = Join-Path $scriptDir "Utils\Properties\AssemblyInfo.cs"
if (Test-Path $assemblyInfoPath) {
$assemblyInfoContent = Get-Content -Path $assemblyInfoPath -Encoding UTF8 -Raw
# 只从AssemblyFileVersion获取版本号
$fileVersionMatch = [regex]::Match($assemblyInfoContent, '(?<!//)\[assembly: AssemblyFileVersion\("(.*?)"\)\]')
if ($fileVersionMatch.Success) {
$version = $fileVersionMatch.Groups[1].Value
Write-Host "从AssemblyFileVersion获取到版本号: $version"
} else {
Write-Host "错误: 无法从AssemblyInfo.cs的AssemblyFileVersion中获取版本号" -ForegroundColor Red
exit 1
}
} else {
Write-Host "错误: 找不到AssemblyInfo.cs文件" -ForegroundColor Red
exit 1
}
$title = "通用工具库"
$authors = "曾庆明"
$owners = "JoyD Technology"