2010-06-07 198 views
24

我有一个使用C#的项目创建的MSI & Jscript。版本1.0目前是公开的。我想发布这个软件包的一个bug修正版本v-1.0.1,但是在测试它的时候,我得到“已经安装了这个产品的另一个版本。这个版本的安装无法继续。要配置或删除这个版本产品,使用控制面板上的添加/删除程序“。Visual Studio包装:此产品的其他版本已安装

我想要这个修正了bug的版本在不要求用户卸载并安装新版本的情况下进行静默安装。 请帮我怎么做到这一点,我正在使用visual studio 2008.

在此先感谢!

山姆

更新:我试图改变封装代码,但创建使用相同的工作目录包的两个实例。 Visual Studio极客请帮忙。

回答

28

我会按照这个过程

在您的主项目

  • 增量您的程序集版本不。

在你的Visual Studio安装项目

  • 集 “删除以前的版本” 真
  • 增加版本号(这将 对你来说太更改产品代码)
+1

增加装配版本号 [assembly:AssemblyVersion(“1.0.3.7”)] [assembly:AssemblyFileVersion(“1.0.3.7”)] 用于包装的主要组件。 将“RemovePreviousVersion”设置为“8:TRUE” 将版本号从“0.0.28”更改为“1.0.3.7” 问题仍然存在。 – Sam 2010-07-19 07:42:09

+0

我这样做了一个服务,它替换了它,现在因为服务已经注册而无法安装。但是,当然,新版本的安装会回滚并从添加/删除程序中删除,因此我无法卸载原始版本。 InstallUtil来拯救! – 2011-09-08 09:50:30

+0

拯救我的一天。就我而言,我需要将相同的服务安装到不同的名称和不同的连接字符串。每个项目有不同的显示名称和服务名称。更改版本号有帮助。 – 2017-01-12 09:41:45

4

您必须指定UpgradeCode并增加ProductVersion以更新产品。对于较新版本,UpgradeCode将保持不变。

The UpgradeCode property indicates a family of related applications consisting of different versions and different language versions of the same product.

本文介绍的产品代码,的ProductVersion和的UpgradeCode:

http://msdn.microsoft.com/en-us/library/aa370837%28v=VS.85%29.aspx

+1

下面是我在我的.vdproj文件: “名称”= “8:微软的Visual Studio” “产品代码”= “8:{8A3BC7ED-563E-42C1-ABEA-AAB14133E1AC}” “PackageCode” =“8:{24D081CF-EA46-4CA0-B3F7-D4DC60BC5FD8}” “UpgradeCode”=“8:{6F11B335-5F1E-4B4A-8565- 6CCE50A8C599}“ ... ”ProductVersion“=”8:0.0.26“ 当我将ProductVersion更改为”8:0.0.27“并构建msi时。我仍然得到'这个包的另一个版本....'的消息。 请帮忙! – Sam 2010-07-15 15:50:11

13

步骤来解决错误:

  1. 从命令提示执行以下命令:

msiexec /i program_name.msi /lv logfile.log

其中program_name.msi是新的版本

/LV是登录详细输出

  • 打开日志文件。登录在编辑器

  • 找到GUID日志

  • 在我发现它在以下内容:

    Product Code from property table before transforms: '{GUID}'

  • 执行以下所述的MSIZap命令从visual studio命令提示符如果您已经安装或从Microsoft网站获得它

    Windows SDK Components for Windows Installer Developers

  • msizap.exe TWP {GUID}

    它的伎俩,并成功拆除已​​安装的服务。

    提取自 [已解决]该产品的其他版本已经安装。此版本的安装无法继续。要配置或删除这个产品的现有版本,在控制面板]上使用添加/删除程序2

    +0

    这对我有效。首先错过了关于“视觉工作室命令提示符”的部分,可能会很高兴大胆。 – Derek 2014-04-24 13:21:00

    +0

    我使用这个非VS相关的东西,你节省了我的工作时间。您也可以说msizap TW(MSI名称)来从该MSI软件包中删除所有! – 2014-06-30 18:08:00

    3

    打开设置项目属性 点击产品编码。新代码 点击的UpgradeCode。新代码 重建和安装

    +1

    可能不是一个好主意,因为你最终会安装同一个东西的多个版本 - 你希望它检测并卸载以前的版本。 – 2015-04-17 08:18:01

    相关问题