如何在Visual Studio 2008部署项目中获取项目的程序集版本

4
我在Visual Studio 2008中有一个部署项目,安装了多个C#项目。除其他外,我希望它将项目程序集版本写入注册表。
有没有一种自动查找项目程序集版本(写在AssemblyInfo.cs中)并将其作为注册表属性值写入的方法?
如果没有,是否有比手动更好的方法?这些值的正确性很重要,因为它们被我们的更新软件使用。
谢谢。
编辑:我不确定我的问题是否完全清楚。我不想获取此数字并将其存储到字符串中。我想使用部署项目注册表编辑器(不确定是否是官方名称,可以通过右键单击解决方案资源管理器中的部署项目并导航到“查看”->“注册表”访问它)将其写入注册表。
1个回答

6
这应该可以工作:
 Assembly.GetExecutingAssembly().GetName().Version.ToString();

确保从每个项目的主要程序集中调用该方法。

GetName方法返回一个AssemblyName对象,其中还包含其他有用的信息。

编辑:

您可以使程序集自注册,这需要运行一次以更新注册表。

如果不接受该方法,可以为安装编写插件(和/或运行单独的程序)。并且在该代码中,您需要获取正在安装的程序集的文件名。


我不确定我的问题表述是否完全清楚。我不想获取这个数字并将其存储为字符串。我想使用部署项目注册表编辑器将其写入注册表(不确定是否官方名称,您可以右键单击解决方案资源管理器中的部署项目,然后导航到“查看->注册表”)。 - David Božjak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接