使用PowerShell自动更新VS工程的编译版本号
最近做的项目有点多,调试也多,每次调试编译后,发现生成的应用程序或链接库的版本号一直不变,发布工程后,想通过应用程序或链接库自身的版本号回溯源代码也不太方便。
因此从网上找了好几种自动更新版本号的方法,并参考做了一个修改,感觉还算是蛮好用的小工具。
现共享给大家使用,复制以下代码内容,将其保存为AutoUpdateVersion.ps1文件,再将此文件复制到工程目录下,再打开工程属性,将工程编译前事件中输入:PowerShell.exe -ExecutionPolicy RemoteSigned -File $(ProjectDir)AutoUpdateVersion.ps1.。
1、通过当前编译日期来自动更版本号:
$SolutionPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
$FileList = Get-ChildItem $SolutionPath -Recurse AssemblyInfo.cs
$AppDateVer =Get-Date -Format 'yyyy.MM.dd'
$revision=[regex]"(?!Version\("")(\d{1,}.\d{1,}.\d{1,}).(\d{1,})(?=""\))"
Foreach($filename in $FileList)
{
$filename = $filename.FullName
$Content = Get-Content $filename
$version = $revision.Matches($Content) | select Value
$news=[regex]"(\d{1,}.\d{1,}.\d{1,}).(\d{1,})"
$temp=$version[0]
$version[0] -match $news
$version=$Matches
[int]$tempVer=1
if($version[1] -ceq $AppDateVer) #日期相同则获取修订版本号并+1更新
{
[int]$tempVer=