使用VS2012附带的Install Shield创建可更新的设置

时间:2013-12-11 20:42:28

标签: c# visual-studio-2012 installshield-le

我正在尝试使用Install Shield LE打包分发winforms应用程序。这很好用,我甚至在setup.exe中打包了.net 4.5 redistributable。我遇到的问题是我现在正在创建我的应用程序的1.4版本,我希望它成功卸载旧版本(1.0到1.3)并安装新版本。到目前为止,我还没有成功;每次运行新的setup.exe时,都会收到警告,说明必须先使用控制面板中的程序和功能卸载当前版本。

有没有人有一个体面的教程或一些指导,可以通过让我的新版本取代旧版本来帮助我改善我的客户体验?

非常感谢,

杰森。

1 个答案:

答案 0 :(得分:8)

在visual studio项目资源管理器中,您的installshield项目下有许多页面条目。一个被称为“一般信息”(在“组织您的设置”下),包括几个部分。第一部分称为“常规”,前几个字段是“产品名称”,“产品版本”,“产品代码”和“升级代码”。

要创建将升级当前安装的新安装程序(setup.exe),如果存在,则有几件事要做。它知道如何升级当前安装的关键是“升级代码”。如果此代码与原始安装中定义的升级代码(来自原始setup.exe)相同,则它将更新您的安装。

创建更新setup.exe文件:

  1. 打开“常规信息”页面。
  2. 在“常规”部分(顶部)中:
    1. 将产品版本更改为新版本号。
    2. 更改“产品代码”(不是升级代码!)。
      1. 您可以点击这样做 “产品代码”字段末尾的{...}图标。
  3. 最后,创建一个新的升级路径。
    1. 打开“整理您的设置”部分下的“升级路径”页面。
    2. 右键单击最左侧树视图中的“升级路径”,然后选择“新升级路径...”。这将在树视图中创建一个新条目。把它命名为你喜欢的任何东西。
    3. 单击刚刚创建的条目,在右侧窗口中显示属性。第一个字段是“升级代码”。此代码需要与先前安装中使用的代码相同。如果不同,您的安装将安装另一个程序实例(如果产品代码也相同,您将获得“首先卸载其他程序”消息)。
    4. 幸运的是,原始setup.exe的“升级代码”很容易获得。在“升级代码”字段中,有一个...图标。单击此按钮将打开文件浏览器。将其设置为显示“所有文件”,因为它的默认值仅为msi文件。
    5. 导航到原始安装中使用的setup.exe文件并选择它。它将为您填充一些字段,包括原始升级代码。您会注意到它还将最大和最小版本号设置为原始setup.exe的版本号。将最大版本号设置为您在“常规信息”页面的“常规”部分中定义的新setup.exe的版本号。
  4. 你已经定了!构建解决方案,新的setup.exe将升级以前的安装(使用相同的升级代码)。

    查看此页面。它涵盖相同的材料,与图片位! http://syncor.blogspot.com/2013/03/doing-upgrades-with-installshield-le.html