目前我的工作環境中沒有大量的部署控制。雖然有一個長期的計劃來創建一個構建腳本來處理部署,此時我們只是發佈我們的解決方案,然後將它們複製到服務器上。在SVN中創建具有內部版本號和分支名稱的文件
這將是非常有用的一個文本文件或soemthing類似,將包含版本號和分行名稱作爲它的版本目前正在運行的系統上運行的日誌。
是否有可能在Visual Studio中使用SVN掛鉤或簡單的構建後腳本來完成此操作?
目前我的工作環境中沒有大量的部署控制。雖然有一個長期的計劃來創建一個構建腳本來處理部署,此時我們只是發佈我們的解決方案,然後將它們複製到服務器上。在SVN中創建具有內部版本號和分支名稱的文件
這將是非常有用的一個文本文件或soemthing類似,將包含版本號和分行名稱作爲它的版本目前正在運行的系統上運行的日誌。
是否有可能在Visual Studio中使用SVN掛鉤或簡單的構建後腳本來完成此操作?
這裏是我是如何做到的
全部細目創建您的網站的根稱爲Version.txt一個空白的文本文檔。
在您的網站的根稱爲Version.tmpl具有以下內容
Revision: $WCREV$
Repository: $WCURL$
Modified: $WCMODS?Yes:No$
Built On: $WCNOW$
創建第二個文本文檔右鍵點擊你的網站項目,並選擇屬性。然後轉到生成事件選項卡。
以下內容粘貼到你的後生成事件:
cd $(ProjectDir)
"%ProgramFiles%\TortoiseSVN\bin\SubWCRev.exe" ..\. Version.tmpl Version.txt
這將更新Version.txt有關工作副本的一些細節文件,並使用Version.tmpl作爲模板。 Version.txt現在已包含在您的網站中,這意味着每次部署網站時,都會部署Version.txt幷包含有用的信息,因此您需要將代碼庫恢復到部署的版本。
svnversion
是用於檢查工作副本當前修訂版的工具。
在Windows上,您有Subwcrev。
您可以使用構建腳本來完成此操作。查看存儲庫根目錄中的.svn \ entries文件。它應該包含版本號早於該文件(第5行左右)
您可以使用此代碼獲取從VB的參閱。我使用這個改寫版本在應用程序啓動時找出這些信息。
http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx
我用螞蟻作爲我的構建工具,所以我有一個存儲svnversion,如果在文件svnversion,如果輸出Ant目標。該目標是所有主要入口點的依賴關係,所以每次運行ant時,都會更新svn-version。我的包裝操作包括所有可交付tar和zip文件中的svn-version。所以我總是可以查看svn-version來找出已安裝的代碼版本。
無論您使用哪種構建工具,您都應該能夠做到這一點。如果svnversion的數據不夠用,您可能還想將svn info的輸出添加到文件中。
我也使用Ant並開發了一個special Task,它能夠從本地存儲庫(如果代碼已簽出)或遠程Subversion服務器(如果代碼已導出)檢索Subversion信息並使它們可用通過常規的Ant屬性。
使用Ant替換機制(例如,在複製任務中),您可以將這些值放在您認爲合適的地方。
謝謝你。你將能夠提供一些更完整的代碼來說明如何實現這一點? – 2009-07-01 14:18:09