在windows资源管理器中,当鼠标光标悬停在文件上时显示的版本信息是为visual studio在版本资源中生成的文件设置的。我想在一个地方为解决方案构建的所有文件设置版本,最好是当我在安装属性中更改版本时。有没有办法做到这一点?
这样做的动机是,如果文件的版本没有更新,那么安装程序将保留以前版本的文件,而不是用新文件替换它们。即使设置了'RemovePreviousVersions‘属性,也会发生这种情况。为了省去在构建和安装的每个文件中更新版本的繁琐和容易出错的任务,我从所有文件中删除了版本资源-这并不优雅。
发布于 2012-03-02 04:55:16
堆栈溢出主题How to programatically change a project's product version?中的第二个答案提供了从C++中的公共头文件设置版本号的解决方案。只需将包含硬编码版本号的头文件放在每个项目都能找到的文件夹中即可。
上面的回答还描述了一种递增版本号的方法。微软的文章How to increment version information after each build in Visual C++提供了C++版本递增的另一种方法。
或者,您可以使用源代码管理存储库的修订号作为版本号的一部分。堆栈溢出文章Creating a file with build number and branch name in SVN为TortoiseSVN用户提供了一些关于这一点的见解。以下两篇文章对此进行了更深入的探讨:
Integrating the Subversion Revision into the Version Automatically with .NET (C# or VB)
Integrating the Subversion Revision into the Version Automatically with Native C/C++
(以上两个网页提供了针对TortoiseHg用户的类似步骤的链接)
从理论上讲,您可以有一个包含新版本号的文本文件,然后运行一个预先构建的脚本,该脚本将:
Ant (version.h)
发布于 2010-04-29 22:31:12
要集中管理解决方案的版本,请执行以下操作:
从AssemblyInfo.cs;
我在版本中使用了这样的代码块:
#if DEBUG
程序集: AssemblyVersion("1.8.0.0")
#else
程序集: AssemblyVersion("1.8.*")
#endif
这避免了VS在开发过程中重新构建每个程序集,但在我构建版本时会给每个程序集一个新的版本号。
https://stackoverflow.com/questions/2737958
复制相似问题