2012-02-11 79 views
3

我的測試人員多次出現混淆,讓我的項目的舊版本進行測試,然後報告修復的錯誤。在Visual Studio 2008中將內部版本號/內部版本號嵌入到項目中

如何將生成ID嵌入到我的項目中?構建的當前時間,或者簡單地從1開始,並且每次構建程序時都會增加。然後在遊戲用戶界面中,將打印內部版本號,以便測試人員使用的軟件版本沒有歧義。

我已經搜索了一個答案,並問IRC,但我發現的一切似乎只涉及到C#。

任何想法?在Unix上,我只是修改Makefile,並有一些oneliner將我需要的值插入到源代碼中。

現在我最好的想法是弄清楚VS構建過程如何工作,然後編寫一個python腳本先運行並編輯源代碼以更新內部版本號。

回答

3

好吧,這是我的快速和骯髒和醜陋的解決方案。

我有一個buildid.txt文件,這是一個只有buildid整數值的文本文件。

我有增量-buildid.bat

@echo off 
for /f %%a in (buildid.txt) do (
    echo %%a 
    set /a num=%%a 
) 
echo %num% 
set /a num += 1 
echo %num% > buildid.txt 
echo int buildid = %num%; > buildid.c 

要與Visual Studio生成過程中,在Solution Explorer中右鍵單擊解決方案渣土約 - >屬性 - >生成事件 - >預生成事件。

現在我知道如何做到這一點,我可以在後期製作事件中放入我的zip + scp腳本以便即時上傳! (不知道是否阻止或不會,將不得不測試它)

編輯:上傳確實阻止。也就是說,直到上傳完成纔開始調試。我只是有另一批使用scp上傳,因爲我覺得有必要。雙擊它,並將其發送到遠程服務器。

2

爲了解決同樣的問題,我編寫了一個小工具,生成一個包含日期/時間戳的頭文件#define。它作爲預構建步驟運行,主項目包含生成的頭文件。然後,您可以將該郵票包含在登錄橫幅或類似內容中。

在我的項目中,我還生成了一個版本資源,然後將其移動到.rc2文件(手動編寫的資源)中,並對其進行修改以包含生成的頭文件並適當地更新版本。