Dot-Net

用於更新 assemblyinfo 文件的 MSbuild

  • August 17, 2017

我正在編寫一個批處理文件來自動執行一系列任務。其中一項任務是通過在我的解決方案的各個項目中編輯 assemblyinfo.cs 文件來更新我的解決方案中的 dll 版本;然後最後呼叫 msbuild.exe 編譯解決方案。

在這方面,是否可以編寫一個命令行腳本來更新我的 .net 解決方案中的各種 assemblyinfo.cs 文件。我寧願從命令行本身呼叫 msbuild,而不是創建另一個 msbuild 腳本文件。

如何使用 MSBuild 做到這一點?還有其他方法嗎?

謝謝你的時間…

如果沒有其他工具的幫助,使用 dos cmd 批處理文件編輯文件非常麻煩。您需要使用 for /f 命令之類的東西來逐行遍歷,然後處理每一行。例如,查找以“[assembly: AssemblyVersion”開頭的行並將其替換為其他內容。

但是,如果您的 AssemblyInfo.cs 中沒有太多內容(請記住,如果需要,您可以將 AssemblyInfo.cs 拆分為多個 cs 文件),我建議您使用幾個 echo 語句從頭開始創建文件。

如果您有其他可用的工具,例如 sed.exe,則可以輕鬆完成編輯。

這些天我的偏好是使用一個簡單的 powershell 腳本,它可以在早餐時吃這個,如果你需要的話,可以讓你訪問 .Net 庫。

這是它的模板形式:

(Get-Content AssemblyInfo.template.cs) -replace "{version}","1.2.3.4" > AssemblyInfo.cs

這是一個使用正則表達式替換任何版本號的表單:

$x = 'Version("{0}")' -f "1.2.3.4"
$content = Get-Content AssemblyInfo.cs
$content -replace 'Version\(".*"\)',$x > AssemblyInfo.cs

引用自:https://stackoverflow.com/questions/8739493