我有2個Visual C++項目,它們都有一個定義了字段產品版本的RC文件。我怎樣才能讓這兩個項目從全球的地方獲得這個版本?全球RC文件或有哪些解決方案?如何在兩個Visual C++項目之間共享相同的產品版本?
回答
對我而言,最好的辦法是添加兩個「解決方案項目」。一個是.h文件,其中一個版本字符串是#defines
,另一個是.rc文件,該文件包含使用定義的.h和BLOCK "StringFileInfo"
。
每個項目的單個資源文件使用TEXTINCLUDE
來引入解決方案的.rc的內容。 。
這是一個很大采取讓我告訴你我是什麼意思?
1)兩個解決方案項目被添加像這樣:
2 )version.h
有一些將在VersionInfo.rc2中使用的#defines
#define SOLUTIONFILEVERSION 1,00,0000,00000
#define SOLUTIONFILEVERSIONSTRING "1,00,0000,00000"
#define COPYRIGHT "Copyright 2012"
#define PRODUCTNAME "Your product name"
#define COMPANYNAME "Your company name"
3) VersionInfo.rc2使用定義
#include "version.h"
VS_VERSION_INFO VERSIONINFO
FILEVERSION SOLUTIONFILEVERSION
PRODUCTVERSION SOLUTIONFILEVERSION
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", COMPANYNAME
VALUE "FileVersion", SOLUTIONFILEVERSIONSTRING
VALUE "LegalCopyright", COPYRIGHT
VALUE "ProductName", PRODUCTNAME
VALUE "ProductVersion", SOLUTIONFILEVERSIONSTRING
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
你將要在這個文件的末尾的新線,使資源編譯器高興的時候它被包含在下一步。
您可能希望設置的另一個字段是「FileDescription」,但通常以每個項目爲基礎。請記住,這可以包含您希望在項目之間共享的任何內容。
4)在每個進程中包含VersionInfo.rc2。這可以通過右鍵單擊資源視圖中的每個項目的.rc並選擇資源包括來完成。
添加到編譯時指令:#include "../VersionInfo.rc2"
這可以通過添加以下到項目的rc文件手動完成,但它可能是更好的讓Visual Studio的管理一切它可以爲你。
3 TEXTINCLUDE
BEGIN
"#include ""../VersionInfo.rc2""\r\n"
"\0"
END
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "../VersionInfo.rc2"
/////////////////////////////////////////////////////////////////////////////
呃......那是一口。但是現在你應該能夠從一個地方改變你的產品版本。
非常感謝。我嘗試了你的建議,但它不起作用。我創建了version.h文件並創建了定義,然後我創建了VersionInfo.rc2並將其包含在項目的主RC文件中。我還在項目中添加了version.h和VersionInfo.rc2。你沒有提到的一件事是從主RC文件中刪除版本的東西。我也這麼做了。當建立項目我得到警告/錯誤,並且DLL已經清空所有字段,所以它看起來像版本信息不通過。我不知道我做錯了什麼。我的IDE是Visual Studio 2009 – dbrasco
您提到了在每個項目的基礎上設置FileDescription。有什麼建議嗎?除了這個共享的文件之外,還可以在項目特定的.rc文件中有另一個'BLOCK「StringFileInfo」? – CoderDennis
我繼續嘗試添加第二個版本信息塊,併產生一個錯誤,因爲我懷疑它會。仍在尋找一種包含項目特定值的方式。 – CoderDennis
好吧,我已經解決了。
我不得不在項目的林資源文件的底部
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#include "VersionInfo.rc2"
/////////////////////////////////////////////////////////////////////////////
現在一切都很正常添加以下爲好。謝謝
我很高興你能工作。我已經更新了答案中的最後一步,希望能夠讓其他人隨時關注。 –
- 1. 多個項目之間共享資產
- 2. 在兩個Visual Studio項目之間共享一個類
- 3. 如何在Visual C#項目之間同步版本?
- 4. 在兩個不同的git項目之間共享代碼
- 5. git如何在兩個版本庫之間共享代碼
- 6. 如何共享兩個項目之間的文件夾在Visual Studio 2010
- 7. 兩個不同的GWT項目之間的共享代碼
- 8. 如何在兩個項目之間共享代碼?
- 9. 如何在兩個GWT項目之間共享代碼?
- 10. 如何在具有相同父項的兩個類之間共享代碼?
- 11. 在Visual C++中的項目之間共享文件10
- 12. 如何在項目之間共享logback.xml
- 13. 如何在Visual Studio中的php項目之間共享文件?
- 14. 如何讓兩個django項目共享相同的數據庫
- 15. 如何讓兩個Servlets共享相同的項目列表
- 16. 在不同Linux版本之間共享SO(共享對象)
- 17. Visual Studios - 在不同項目之間共享文件夾
- 18. 在Visual C++項目之間共享變量
- 19. VS2010在.Net框架版本之間共享項目
- 20. 如何在Visual Studio中的不同類型的項目之間共享代碼?
- 21. 如何在不同解決方案之間共享相同的Visual Studio項目?不同的app.config和setttings.settings
- 22. Visual Studio:如何管理項目之間共享的代碼
- 23. 在不同.net版本之間共享的單個共享代碼庫
- 24. 在兩個django項目之間共享一個模型
- 25. qtmake - 兩個項目/目標之間的共享資源
- 26. 在git中共享兩個項目之間的代碼
- 27. 在.net中的兩個項目之間共享dll
- 28. 在項目之間共享Web服務
- 29. OpenGL GLFW GLAD項目之間共享Visual C++
- 30. 如何在兩臺PC之間共享同一個Visual Studio 2010項目的開發?
創建一個全球'版本。h'文件並從兩個rc文件中包含它 – 2012-11-28 15:04:30
我認爲你只能手動修改版本信息。 – Healer
@aleguna你可以舉一個例子,在version.h文件中需要什麼? – dbrasco