删除组件后 Installshield 不会更新文件
Installshield won't update files after component has been removed
基本 .msi 项目。
Installshield 2010。
我的安装项目是 v1.0.0.0 我添加了一些组件:
1. 转到 "Installation designer" 选项卡 -> "Organization" 菜单类别 -> "Components" 子菜单。
2. 右击"Components" -> "New component".
3. 我将新文件夹名称 "dir1" 附加到 [INSTALLDIR] 目标。
4. 然后我添加一个文件。
5. 去了"Organization" -> "Setup design"
6. 创建了一个新功能
7. 右击特征select "Assign components"
8.我select组件
构建、安装。
然后我把我安装的版本升级到v1.0.0.1
1. 再次添加新组件
2. 附加目录名称不同的目标 [INSTALLDIR]dir2
3. 添加了一个文件。
4.去了"Setup design"
5. 右击特征select "Assign components"
6. Select编辑了我创建的第二个组件。
7. 然后去"Components"删除了第一个组件。
构建、安装。
此时,没有任何更新。我仍然看到Dir1,应用程序安装目录中没有Dir2。
如果我尝试 uninall,它将删除 "Uninstall programs" 列表的应用程序,但 none 的文件将被删除。
我做错了什么,我该如何解决?
google 对此的帮助为零。我可能不知道用什么搜索词来解决这种问题。
如果我完全卸载我的项目并手动删除所有文件,然后安装新版本,那么一切正常,它会创建 dir2,但我需要它不仅可以用于全新安装,还可以用于更新.
解决方案(至少对我来说)
虽然 M F 解决方案适用于尚未损坏您的 installshield 项目的情况,但我将记录我自己的修复步骤 损坏完成后并且没有保存备份。
在 'Installation Designer' 视图中:
1. 安装信息 -> 一般信息 -> 产品代码,我点击 Generate a new GUID
按钮。
2. 媒体 -> 升级 -> 为升级方案准备设置 -> 升级 Windows 安装程序设置 。右击它 select Add major upgrade item
.
3. 普通 -> 重大升级。选中 Products sharing my Upgrade Code
。
4. 通用 -> 产品版本。 Select Within a specific range of versions
并将当前构建版本输入 'max' 框中。
现在,当使用这个新安装文件安装应用程序时,它会自动卸载旧版本及其所有组件,并安装带有新组件的新版本。
您不能在次要安装之间删除组件。
您可以将组件条件设置为“0”,这样条件就不会安装和删除组件中的任何文件。但是将组件保留为项目的一部分。
如果要删除作为原始组件的一部分安装的文件,请使用删除文件设置将文件添加到组件中。
如果您输出详细日志,您将在日志文件中看到它抱怨某个组件已被删除。或者,如果您根据旧版本验证新版本,它会说您不能删除组件。
基本 .msi 项目。
Installshield 2010。
我的安装项目是 v1.0.0.0 我添加了一些组件:
1. 转到 "Installation designer" 选项卡 -> "Organization" 菜单类别 -> "Components" 子菜单。
2. 右击"Components" -> "New component".
3. 我将新文件夹名称 "dir1" 附加到 [INSTALLDIR] 目标。
4. 然后我添加一个文件。
5. 去了"Organization" -> "Setup design"
6. 创建了一个新功能
7. 右击特征select "Assign components"
8.我select组件
构建、安装。
然后我把我安装的版本升级到v1.0.0.1
1. 再次添加新组件
2. 附加目录名称不同的目标 [INSTALLDIR]dir2
3. 添加了一个文件。
4.去了"Setup design"
5. 右击特征select "Assign components"
6. Select编辑了我创建的第二个组件。
7. 然后去"Components"删除了第一个组件。
构建、安装。
此时,没有任何更新。我仍然看到Dir1,应用程序安装目录中没有Dir2。
如果我尝试 uninall,它将删除 "Uninstall programs" 列表的应用程序,但 none 的文件将被删除。
我做错了什么,我该如何解决?
google 对此的帮助为零。我可能不知道用什么搜索词来解决这种问题。
如果我完全卸载我的项目并手动删除所有文件,然后安装新版本,那么一切正常,它会创建 dir2,但我需要它不仅可以用于全新安装,还可以用于更新.
解决方案(至少对我来说)
虽然 M F 解决方案适用于尚未损坏您的 installshield 项目的情况,但我将记录我自己的修复步骤 损坏完成后并且没有保存备份。
在 'Installation Designer' 视图中:
1. 安装信息 -> 一般信息 -> 产品代码,我点击 Generate a new GUID
按钮。
2. 媒体 -> 升级 -> 为升级方案准备设置 -> 升级 Windows 安装程序设置 。右击它 select Add major upgrade item
.
3. 普通 -> 重大升级。选中 Products sharing my Upgrade Code
。
4. 通用 -> 产品版本。 Select Within a specific range of versions
并将当前构建版本输入 'max' 框中。
现在,当使用这个新安装文件安装应用程序时,它会自动卸载旧版本及其所有组件,并安装带有新组件的新版本。
您不能在次要安装之间删除组件。
您可以将组件条件设置为“0”,这样条件就不会安装和删除组件中的任何文件。但是将组件保留为项目的一部分。 如果要删除作为原始组件的一部分安装的文件,请使用删除文件设置将文件添加到组件中。
如果您输出详细日志,您将在日志文件中看到它抱怨某个组件已被删除。或者,如果您根据旧版本验证新版本,它会说您不能删除组件。