我有一个C#程序的安装项目,这个安装项目的属性有一个版本。我想生成的MSI文件中嵌入了这个版本,所以我可以在资源管理器中将鼠标悬停在它上面,看看该文件是什么版本。
我正在使用VS2008。我怎么能这样做?
答案 0 :(得分:6)
如果只是将“Version:1.5.0”文本添加到Setup Project的Description属性中,版本号也会显示在MSI文件中,如下所示:
答案 1 :(得分:1)
这是一个很好的问题,但我不知道任何设置工具可以做到这一点。此外,我从未遇到嵌入了文件版本资源的MSI文件,因此这不是常见做法。通常如果我想查找MSI文件的版本,我必须在Orca中打开它并在那里检查ProductVersion属性(在Property表中)。
答案 2 :(得分:1)
据我所知,MSI文件永远不会显示版本。简单的原因是MSI文件不是PE文件,它们是排序数据库。然后Msiexec.exe解释此数据库以执行实际安装。您提到的版本属性在内部由MSI引擎用于升级,卸载等,并且永远不会显示。
答案 3 :(得分:1)
在文本编辑器中打开关联的.vdproj文件。查找“产品”部分,然后修改“ProductVersion”和“制造商”字段。
"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:"
答案 4 :(得分:0)
我可能错了,但msi版本是否遵循启动项目的AssemblyInfo文件中的版本?