使用动态文件更新 globalassemblyinfo.cs
Update globalassemblyinfo.cs with a dynamic file
我得到了一个带有版本号的文本文件,它在每次构建时都会更新,即:1.4.10.301。
我想在每个构建中将此编号插入到我的 globalassemblyinfo.cs 文件中这一行:[assembly: AssemblyVersion("1.4.10.300")] 并且仅添加到版本号,即构建之前globalassembly.cs 文件将使用文本文件 (1.4.10.301) 中的新版本号进行更新。
试过这个:
$a = cat "C:\pathtofile\GlobalAssemblyInfo.cs" | select-string AssemblyVersion
这只给我这一行:
[assembly: AssemblyVersion("1.4.10.331")]
但是我只需要这个数字我怎么才能把它取出来?尝试使用一种模式,但我不知道该在模式中准确放入什么
下面的代码非常有效,我设法提取了版本号,现在我试图用 globalassemblyinfo.cs 中的版本替换这个版本,所以我写了这一行:
$a -replace $version,$Newversion | Set-Content "C:\pathtofile\GlobalAssemblyInfo.cs"
但是它删除了整个文件内容并用这个字符串代替:
[assembly: AssemblyVersion("1.4.10.400")]
如何只更新行而不删除整个文件内容?
获得包含 AssemblyVersion
属性的行后,您可以使用 named capture group 获取版本字段,如下所示:
if($a -match '(?<version>(\d+\.?){4})'){
$version = $Matches["version"]
}
实际模式:(\d+\.?){4}
匹配四次连续出现的一个或多个数字和一个可选点 - (?<version>)
部分确保它被捕获到 $Matches["version"]
找到答案,显然你必须像这样使用带括号的 Get-Content 命令:
(Get-Content "C:\pathtofile\GlobalAssemblyInfo.cs") -replace $version,$Newversion | Set-Content "C:\pathtofile\GlobalAssemblyInfo.cs"
这 link 帮助了:
我得到了一个带有版本号的文本文件,它在每次构建时都会更新,即:1.4.10.301。
我想在每个构建中将此编号插入到我的 globalassemblyinfo.cs 文件中这一行:[assembly: AssemblyVersion("1.4.10.300")] 并且仅添加到版本号,即构建之前globalassembly.cs 文件将使用文本文件 (1.4.10.301) 中的新版本号进行更新。
试过这个:
$a = cat "C:\pathtofile\GlobalAssemblyInfo.cs" | select-string AssemblyVersion
这只给我这一行:
[assembly: AssemblyVersion("1.4.10.331")]
但是我只需要这个数字我怎么才能把它取出来?尝试使用一种模式,但我不知道该在模式中准确放入什么
下面的代码非常有效,我设法提取了版本号,现在我试图用 globalassemblyinfo.cs 中的版本替换这个版本,所以我写了这一行:
$a -replace $version,$Newversion | Set-Content "C:\pathtofile\GlobalAssemblyInfo.cs"
但是它删除了整个文件内容并用这个字符串代替:
[assembly: AssemblyVersion("1.4.10.400")]
如何只更新行而不删除整个文件内容?
获得包含 AssemblyVersion
属性的行后,您可以使用 named capture group 获取版本字段,如下所示:
if($a -match '(?<version>(\d+\.?){4})'){
$version = $Matches["version"]
}
实际模式:(\d+\.?){4}
匹配四次连续出现的一个或多个数字和一个可选点 - (?<version>)
部分确保它被捕获到 $Matches["version"]
找到答案,显然你必须像这样使用带括号的 Get-Content 命令:
(Get-Content "C:\pathtofile\GlobalAssemblyInfo.cs") -replace $version,$Newversion | Set-Content "C:\pathtofile\GlobalAssemblyInfo.cs"
这 link 帮助了: