在Wix中确定较新版本的可执行文件

| 我们有一个内部有几个可执行文件的软件。可执行文件之一是Windows服务,它不会经常更改,通常我们会发布主要可执行文件的许多更新,但是安装程序中的服务版本相同。 首次安装服务或使用新版本升级服务时,我们需要运行自定义操作。我们设法解决了第一个安装部分,但是我们不知道如何确定我们正在安装的版本比现有版本新。某种if(newver> oldver)运行自定义操作。 先感谢您  -杰克     
已邀请:
您可以尝试使用软件包的升级规则。此处有更多详细信息:如何实施WiX安装程序升级? Rob Mensching(链接线程中的第二个答案)显示了升级规则的示例。您首先应该熟悉升级表以及升级规则的工作方式。 WiX中没有简单的答案或快速解决方案。 基本上,您应该有2条升级规则 发现较旧版本时,第一个设置属性 第二个设置发现新版本时的另一个属性 之后,您可以使用旧版本属性来设置您的自定义操作。例如,如果该属性名为OLDERVERSIONFOUND,则自定义操作条件可以是:
OLDERVERSIONFOUND 
或类似的东西
OLDERVERSIONFOUND > \"1.0.0\"
    
最好的选择是将“服务”版本存储在注册表中的某个位置,在升级过程中搜索该注册表值,并在newver> oldver的情况下运行您的CA(并且CA还将注册表值更新为newver)。 请注意,“自定义操作”通常是对失败的承认。我总是尝试将安装程序的配置部分分离为安装前(对于进行部署的sysadmins)或安装后(对于交互式安装)的步骤-通常是单独的可执行文件。 无需任何自定义操作的声明性安装将更加可靠-如果您能弄清楚如何重写该服务,从而不再需要自定义操作,那么从长远来看,您的情况会更好(这无济于事)当您承受着要立即发布的压力时,但是对于将来的发布则要考虑一下)     

要回复问题请先登录注册