2

我的 C# 程序有一个安装项目,这个安装项目的属性中有一个版本。我希望生成的 MSI 文件中嵌入了这个版本,所以我可以在资源管理器中将鼠标悬停在它上面并查看文件是什么版本。

我正在使用VS2008。我怎样才能做到这一点?

4

5 回答 5

8

如果您只是将“版本:1.5.0”文本添加到安装项目的描述属性中,版本号也会显示在 MSI 文件中,如下所示:

http://screencast.com/t/A499i6jS

于 2008-09-30T02:20:39.767 回答
2

据我所知,MSI 文件永远不会显示版本。原因很简单,MSI 文件不是 PE 文件,它们是某种数据库。Msiexec.exe 然后解释此数据库以执行实际安装。您提到的版本属性由 MSI 引擎在内部用于升级、卸载等,并且从不显示。

于 2008-09-30T00:43:51.887 回答
1

这是一个很好的问题,但我不知道有任何设置工具可以做到这一点。此外,我从未遇到过嵌入了文件版本资源的 MSI 文件,因此这不是一种常见的做法。通常,如果我想找出 MSI 文件的版本,我必须在Orca中打开它并检查那里的 ProductVersion 属性(在属性表中)。

于 2008-09-30T00:43:27.173 回答
1

在文本编辑器中打开关联的 .vdproj 文件。查找“产品”部分,然后修改“产品版本”和“制造商”字段。

 "Product"
    {
    "Name" = "8:Microsoft Visual Studio"
    "ProductName" = "8:tidAxCleanupScript"
    "ProductCode" = "8:{0949AAAD-2C29-415E-851C-825C74C9CA81}"
    "PackageCode" = "8:{8F012EF1-D5D0-43DC-BBFD-761A639DDB07}"
    "UpgradeCode" = "8:{38DE1949-0782-4EF3-BDC2-080EB5B73EF8}"
    "RestartWWWService" = "11:FALSE"
    "RemovePreviousVersions" = "11:TRUE"
    "DetectNewerInstalledVersion" = "11:TRUE"
    "InstallAllUsers" = "11:FALSE"
    "ProductVersion" = "8:**1.5.0**"
    "Manufacturer" = "8:**Default Company Name**"
    "ARPHELPTELEPHONE" = "8:"
于 2011-07-19T15:52:06.600 回答
0

我可能错了,但是 msi 版本不遵循您启动项目的 AssemblyInfo 文件中的版本吗?

于 2008-09-30T00:19:37.433 回答