c# - 如何在 visual studio 2008 部署项目中获取项目的程序集版本

标签 c# deployment version

我在 visual studio 2008 中有一个部署项目,它安装了多个 C# 项目。除其他事项外,我希望它将项目程序集版本写入注册表。

有没有办法自动找出项目程序集版本(写在 AssemblyInfo.cs 中)并将其写入注册表属性的值?

如果没有,有没有比手动更好的方法?这些值的正确性很重要,因为我们的更新软件会使用它们。

谢谢。

编辑:我不确定我的问题是否完全清楚。我不想得到这个数字并将它存储到一个字符串中。我想使用部署项目注册表编辑器将其写入注册表(不确定这是否是官方名称,您可以通过右键单击解决方案资源管理器中的部署项目并导航至“查看”->“注册表”来访问它)

最佳答案

这应该有效:

 Assembly.GetExecutingAssembly().GetName().Version.ToString();

确保从每个项目主程序集中调用它。

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

编辑:

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

如果这 Not Acceptable ,可以编写一个插件进行设置(和/或运行一个单独的程序)。从该代码中,您需要获取正在安装的程序集的文件名。

关于c# - 如何在 visual studio 2008 部署项目中获取项目的程序集版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2013934/

相关文章:

c# - Dotnet webclient 超时,但浏览器可以处理 json web 服务的文件

ruby-on-rails - 使用 SQLite3 将 Rails 推送到 Heroku 失败

asp.net - 使用 web 部署参数时使用 web.config 中的默认值

android - 如何在 Flutter 2.8 中更改 minSdkVersion/targetSdkVersion?

c# - 当属性不能为 null 时使用什么异常类型?

C#:为什么 0xFFFFFFFF 在表示 -1 时是一个 uint?

c# - 使用 OpenXML SDK 2.0 插入新行和移动现有行

c# - 无需签名即可部署 ClickOnce 应用程序

php - 为什么 "-8+etch15"附加到该客户的 PHP 版本字符串中?

c# - 从 .exe 获取 FileDescription (ProgramName)