gpt4 book ai didi

c# - 如何在 Visual Studio 2022 中使用日期/时间更改 AssemblyInfo.cs AssemblyVersion 并每天将修订增加一

转载 作者:行者123 更新时间:2023-12-05 01:05:02 24 4
gpt4 key购买 nike

经过挖掘和搜索。我发现 AssemblyVersion 只接受 System.Int16 这意味着它不能超过 65,535 的值。

我需要的输出*.DLL 程序集版本样式(YYYY.M.D.HHMMSS)(2022.02.20.060920)

实际上第二部分第一个零会省略 060920 它将是 60920,如果小时是 15 = 3 PM,它应该是 150920 = 6 位数。不起作用。我想有一种方法 DateTime.Now.Ticks 但它给出了一个 System.Int64 并且永远不会适用于 Version

请问有没有 5 位 小时/分钟/秒 样式可以在这里使用?或者可能是有意义的特殊 5 位刻度。

当我使用 Visual Studio 自动增量修订版 1.0.0.* 功能时的主要问题。它给出任意增量值。并且包输出没有排序。

DLLs

我现在该怎么办?现在我需要使用 Time for revision 字段...你能帮忙吗?

编辑, 如果上述 5 位样式不可用。我发现文章增加了一个修订。但它非常古老并且使用 JavaScript! https://www.codeproject.com/Tips/161923/Incrementing-AssemblyVersion-revision-number-on-ea

还有未回答的问题是新的I would like to increment the build revision version for every build in visual studio

我得到了以下代码,它获得了版本 2022.02.20.Revision(修订版在 MSDN 限制为大值午夜 * 2 期间是无用的。

编辑:期间只有extension在没有更新到 Visual Studio 2022 或者他们可能不支持它的 VS 市场中,我尝试在下面给出解决方案:

(如果您有更好的方法,请随时修改答案)

最佳答案

我希望他们更新 extension在 VS 市场中。

但无论如何,这里的解决方案是生成带有(年、月、日、增量每日)的版本

此代码必须在 </project> 结束之前插入标记 *.csproj文件

<!-- Change AssemblyInfo.cs AssemblyVersion with date/time and increment revision daily by one in Visual Studio 2022 -->
<Target Name="AssemblyVersion" BeforeTargets="CoreCompile" DependsOnTargets="PrepareForBuild">
<PropertyGroup>
<!-- Define Constants -->
<AssemblyInfo>Properties\AssemblyInfo.cs</AssemblyInfo>
<AssemblyInfoContent>$([System.IO.File]::ReadAllText($(AssemblyInfo)))</AssemblyInfoContent>
<VersionRegex>(\[\s*assembly\s*:\s*AssemblyVersion\(\s*"(\d+)\.(\d+)\.(\d+)(\.)(\d+)("\)\s*\]))</VersionRegex>
<BuildAndRevisionRegex>(\d+\.\d+")</BuildAndRevisionRegex>

<!-- Parse Build and Revision from AssemblyInfo-->
<AssemblyVersion>$([System.Text.RegularExpressions.Regex]::Match('$(AssemblyInfoContent)', '$(VersionRegex)'))</AssemblyVersion>
<BuildAndRevision>$([System.Text.RegularExpressions.Regex]::Match('$(AssemblyVersion)', '$(BuildAndRevisionRegex)'))</BuildAndRevision>
<BuildAndRevision>$(BuildAndRevision.Remove($(BuildAndRevision.LastIndexOf('"')), 1))</BuildAndRevision>

<!-- Generate Build and Revision from AssemblyVersion -->
<Build>$(BuildAndRevision.SubString(0, $(BuildAndRevision.LastIndexOf('.'))))</Build>
<Revision>$(BuildAndRevision.SubString($([MSBuild]::Add($(BuildAndRevision.LastIndexOf('.')), 1))))</Revision>

<!-- Increment Revision by one if Build equal Current Day otherwise start from one as new Day Build-->
<Revision Condition ="$([System.DateTime]::Now.Day) == $(Build)">$([MSBuild]::Add($(Revision), 1))</Revision>
<Revision Condition ="$([System.DateTime]::Now.Day) != $(Build)">1</Revision>

<!-- New AssemblyVersion Block -->
<AssemblyVersion>[assembly: AssemblyVersion("$([System.DateTime]::Now.ToString("yyyy.M.d.$(Revision)"))")]</AssemblyVersion>
</PropertyGroup>

<!-- Write New AssemblyVersion Block to AssemblyInfo.cs file -->
<WriteLinesToFile File="$(AssemblyInfo)" Lines="$([System.Text.RegularExpressions.Regex]::Replace($(AssemblyInfoContent), $(VersionRegex), $(AssemblyVersion)))" Overwrite="true" />
</Target>

生成的结果是这样的:

  1. 图书馆/项目的每一天都将从(年、月、日、日增量)开始

Incremental daily

  1. 次日从一开始递增: Next Day increment from one again

关于c# - 如何在 Visual Studio 2022 中使用日期/时间更改 AssemblyInfo.cs AssemblyVersion 并每天将修订增加一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71191341/

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