我在visual studio 2008中有一个部署项目,可以安装几个C#项目。除此之外,我希望将项目汇编版本编写到注册表中。
有没有办法自动找出项目程序集版本(用AssemblyInfo.cs编写)并将其写为注册表属性的值?
如果没有,有没有办法比手工更好地做到这一点?重要的是这些值是正确的,因为我们的更新软件使用它们。
谢谢。
编辑:我不确定我的问题是否完全清楚。我不想得到这个数字并将其存储到字符串中。我想用Deployment Projects注册表编辑器将它写入注册表(不确定这是否是官方名称,您可以通过右键单击解决方案资源管理器中的部署项目并导航到View->注册表来获取它)
答案 0 :(得分:6)
这应该有效:
Assembly.GetExecutingAssembly().GetName().Version.ToString();
确保从每个Projects主程序集中调用它。
GetName方法返回一个AssemblyName对象,该对象还包含其他有用的信息。
您可以使程序集自行注册,这需要运行一次以更新注册表。
如果这是不可接受的,可以编写一个插件进行设置(和/或运行一个单独的程序)。从该代码中,您需要获取正在安装的程序集的文件名。