我目前正在使用InstallShield来部署.NET Winforms应用。我是InstallShield的新手,并没有享受到学习曲线。 Winforms应用程序有三个相关的DLL,它们在次要升级期间没有得到更新。对于次要升级,我将版本从1.0.001更改为1.0.002。正在为每个构建自动更改包代码。
我尝试将dll添加到[INSTALLDIR]并将属性设置为"始终覆盖"。由于某种原因,这会导致升级也不会更新主exe。
尝试更改产品代码以强制进行重大升级。这与旧版本一起安装了新版本,但新版本仍然使用旧版本。
尝试从" omus"更改ReinstallMode到" vomus"。这根本没有效果。
尝试使用REINSTALL = ALL,REINSTALLMODE = vomus。这并未更新dll,并且还导致新安装失败,并显示应用程序"未标记为安装"。
尝试将版本从1.0.00x更改为1.1.00x。 dll还没有更新。
我注意到当我查看这些dll文件的属性时,它们具有File Version = 1.0.0.0和Product Version 1.0.0.0。我是否需要手动增加这些版本,以便InstallShield能够识别它们已被更新?
答案 0 :(得分:1)
关于major upgrades和“还原文件”的说明:
关于典型主要升级问题的警告:请注意,在原始安装中设置为永久性的已更改的,未版本控制的文件不可能会在主要升级期间卸载,然后重新安装,从而产生他们拥有的印象已被替换,但实际上已删除并重新创建。这些通常是重要的设置文件,如XML文件或类似文件 - 人们很多都在努力解决这个问题。主要升级基本上是一个序列。卸载旧产品,然后安装新产品,反之亦然。在前一种情况下,可以先卸载文件然后重新创建。如果组件引用正确完成,则不会发生这种情况,因为产品之间匹配的文件未被卸载,但保留然后在需要时被覆盖(根据file replacement / versioning rules)。