在应用补丁时,组件条件未得到正确评估
我有一个场景,其中有两个条件组件。这些组件下的文件具有相同的名称,但具有不同的版本。根据从引导程序传递到MSI的属性,正在评估组件条件
<Component Id="TestAppversionone" Guid="{F5472ED3-EF89-4B13-B595-A6F33F1DF9EE}" Transitive="Yes" >
<File Id="wpfappversionone" Source="TestAPP\1.0.0.0\Testapplication11.exe"/>
<Condition>
VERSIONCHOSEN = VERSION_ONE
</Condition>
</Component>
<Component Id="TestAppversiontwo" Guid="{85F1C55A-A25B-4D33-BEF1-0AA61DAA759E}" Transitive="Yes">
<File Id="wpfappversiontwo" Source="TestAPP\2.0.0.0\Testapplication11.exe"/>
<Condition>
VERSIONCHOSEN = VERSION_TWO
</Condition>
</Component>
在安装基于从引导程序各个组件传递的VERSIONCHOSEN属性值的安装程序时,将进行安装。就我而言,第一个组件正在安装,这是正确的。
但是在应用补丁时,即使条件评估为false,也会安装第二个组件。该文件应更新为1.0.1.0版。该文件也将更新为2.0.1.0版。
我的补丁代码如下。
<Component Id="TestAppversionone" Guid="{F5472ED3-EF89-4B13-B595-A6F33F1DF9EE}" Transitive="Yes" >
<File Id="wpfappversionone" Source="TestAPP\1.0.1.0\Testapplication11.exe"/>
<Condition>
VERSIONCHOSEN = VERSION_ONE
</Condition>
</Component>
<Component Id="TestAppversiontwo" Guid="{85F1C55A-A25B-4D33-BEF1-0AA61DAA759E}" Transitive="Yes">
<File Id="wpfappversiontwo" Source="TestAPP\2.0.1.0\Testapplication11.exe"/>
<Condition>
VERSIONCHOSEN = VERSION_TWO
</Condition>
</Component>
当我观察日志时,第一个组件条件被评估为true并且文件被覆盖。但是,如果我导航到installpath,则存在错误的文件。有什么可以帮助我解决此问题。