我正在尝试使用 Install Shield LE 来打包和分发 winforms 应用程序。这运行良好,我什至在 setup.exe 中打包了 .net 4.5 可再发行组件。我遇到的问题是我现在正在创建我的应用程序的 1.4 版本,我希望它能够成功卸载旧版本(1.0 到 1.3)并安装新版本。到目前为止我还没有成功;每次运行新的 setup.exe 时,我都会收到一条警告,指出必须先使用控制面板中的程序和功能卸载当前版本。
有没有人有合适的教程或指导可以帮助我通过用新版本替换旧版本来改善客户体验?
非常感谢,
杰森。
最佳答案
在 Visual Studios 项目资源管理器中,在您的 installshield 项目下有许多页面条目。一个称为“一般信息”(在“组织您的设置”下),包括几个部分。第一部分称为“常规”,前几个字段是“产品名称”、“产品版本”、“产品代码”和“升级代码”。
要创建将升级当前安装(如果存在)的新安装程序 (setup.exe),需要做一些事情。它知道升级当前安装的方式的关键是“升级代码”。如果此代码与原始安装(来自原始 setup.exe)中定义的升级代码相同,它将更新您的安装。
创建更新 setup.exe 文件:
- 打开“一般信息”页面。
- 在“常规”部分(顶部):
- 将产品版本更改为您的新版本号。
- 更改“产品代码”(不是升级代码!)。
- 您可以通过点击
产品代码字段末尾的
{...}
图标。
- 您可以通过点击
产品代码字段末尾的
- 最后,创建新的升级路径。
- 打开“组织您的设置”部分下的“升级路径”页面。
- 右键单击最左侧 TreeView 中的“升级路径”,然后选择“新升级路径...”。这将在 TreeView 中创建一个新条目。随心所欲地命名。
- 单击您刚刚创建的条目,以在右侧窗口中显示属性。第一个字段是“升级代码”。此代码需要与先前安装中使用的代码相同。如果不同,您的安装将安装您程序的另一个实例(如果产品代码也相同,您将收到“先卸载其他程序”消息)。
- 幸运的是,您原来的 setup.exe 的“升级代码”很容易获得。在升级代码字段中,有一个
...
图标。单击此按钮将打开一个文件浏览器。将其设置为显示“所有文件”,因为其默认值仅显示 msi 文件。 - 导航到原始安装中使用的 setup.exe 文件并选择它。它将为您填充一些字段,包括原始升级代码。您会注意到它还将最大和最小版本号设置为原始 setup.exe 的版本号。将最大版本号设置为您在“常规信息”页面的“常规”部分中定义的新 setup.exe 的版本号。
你准备好了!构建解决方案,新的 setup.exe 将升级以前的安装(使用相同的升级代码)。
查看此页面。它涵盖了相同的 Material ,有点图片! http://syncor.blogspot.com/2013/03/doing-upgrades-with-installshield-le.html
关于c# - 使用 VS2012 附带的 Install Shield 创建可更新的设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529510/