我有一个C#程序的安装项目,这个安装项目的属性中有一个版本。我想要生成将此版本嵌入到其中的MSI文件,以便我可以在资源管理器中将其移到资源管理器中,并查看该文件的版本。如何使用Visual Studio将文件版本嵌入到MSI文件中?
我正在使用VS2008。我怎样才能做到这一点?
我有一个C#程序的安装项目,这个安装项目的属性中有一个版本。我想要生成将此版本嵌入到其中的MSI文件,以便我可以在资源管理器中将其移到资源管理器中,并查看该文件的版本。如何使用Visual Studio将文件版本嵌入到MSI文件中?
我正在使用VS2008。我怎样才能做到这一点?
如果简单地将“版本:1.5.0”文本到安装项目的Description属性,版本号也显示msi文件,像这样:
我可能是错的,但不将MSI版本跟随在启动项目的AssemblyInfo文件的版本?
这是一个很好的问题,但我不知道任何安装工具可以做到这一点。此外,我从来没有遇到过一个MSI文件,其中嵌入了文件版本资源,所以这不是一种常见的做法。通常,如果我想查找MSI文件的版本,我必须在Orca中打开它,并检查那里的ProductVersion属性(属性表)。
据我所知MSI文件永远不会显示版本。简单的原因是MSI文件不是PE文件,它们是排序数据库。 Msiexec.exe然后解释此数据库以执行实际安装。您提到的版本属性由MSI引擎在内部用于升级,卸载等,并且从不显示。
看起来你是对的。接受直到有人证明您错了:P – Blorgbeard 2008-09-30 01:08:44
是的,请告诉我们您的调查结果,如果有的话。我去年遇到同样的问题:) – Vivek 2008-09-30 01:15:39
打通在文本编辑器中关联.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:"
没有。无论如何,不是默认的。我没有看到这样做的选择。 – Blorgbeard 2008-09-30 00:24:34