subwcrev這個命令是tortoisesvn\bin下的命令;
所以前提是你的開發機需要確認安裝了svn的客戶端,並且你本機的**是svn上down下來的,也就是**需要是乙個working copy;
下面說一下如何使用:
1. 假如你的工程內有乙個version.h的標頭檔案,如下:
#ifndef version_h_
#define version_h_
#define version_str "1.2872"
#define version_num 1,2872
#if 1
#pragma message("warning: local modification found ,please make sure source is updated,when bulid release package")
#endif
#endif
標頭檔案內version_str和version_num兩個巨集是工程需要使用的版本號,我們需要讓第2位,也就是2872這個數字變化,每次獲取svn上最新的revision;
2. 準備乙個version.temp.h的標頭檔案(檔名、路徑可以自由),內容如下:
#ifndef version_h_
#define version_h_
#define version_str "1.$wcrev$"
#define version_num 1,$wcrev$
#if $wcmods?1:0$
#pragma message("warning: local modification found ,please make sure source is updated,when bulid release package")
#endif
#endif
和version.h對比一下,我們可以看到我們想要變化的小版本號位置,使用了變數代替,變數含義可以參考下表;
3. 然後開始使用subwcrev.exe此命令,格式如下,
subwcrev workingcopypath [srcversionfile dstversionfile] [-nmdfe]
按照我個人的習慣,寫乙個批處理autoversion.bat
echo on
subwcrev.exe ./ "version/version.temp.h" "version.h"
version.temp.h此檔案我放在了工程目錄下的version路徑下,subwcrev會獲取svn的工程提交版本號,替換此檔案內的變數;然後使用temp檔案替換工程使用檔案version.h
4. vs 工程右鍵-屬性
預編譯事件中,將命令列新增上此bat的名字;(也可以在這直接寫subwcrev.exe ./ "version/version.temp.h" "version.h")
設定ok,可以使用了;
VS2017程式集版本號自動增加
一 修改程式集檔案assemblyinfo.cs,將 assembly assemblyversion 1.0.0.0 修改為 assembly assemblyversion 1.0.修改後報如下錯誤 將文字表示為utf 16 單元的序列。要瀏覽此型別的.net framework源 請參閱參考源...
自動更改發布的版本號
這個是一同事發現的。使用方法介紹如下 該版本修改了 1.報錯的時候不增加版本。2.統計編譯耗時。3.未設定增加版本的工程不報錯。4.提示資訊會在output視窗顯示 會增加乙個macro選項 全域性設定 修改環境的tools customize add ins and macro files bro...
Vsiual Studio自動生成版本號的一種方法
1 安裝nuget包msbuildtasks 2 編輯專案的csproj檔案,找到被注釋掉的target的beforebuild,去掉注釋,新增如下 如下。3 編譯專案一次就會在專案資料夾下生成 propertiesversion.txt 4 在assemblyinfo.cs檔案中包含了assemb...