我有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