使用dark.exe从Installshield处理MSI文件时,从Visual Studio 2013构建时会生成一个包含多个错误实例的文件:
this.excavationInformationForm.get('typeName').setValue(options[0].id);
wxs文件的一部分是:
Unresolved reference to symbol 'CustomAction:CleanUp'
使用ORCA查看MSI文件,表中的CustomAction包含LaunchProgramFileFromSetupCompleteSuccess的条目(不会抛出错误),并且没有清除条目,因此dark.exe的行为一致,因为它创建了一组CustomActions,如下所示:
<Dialog Id="SetupCompleteSuccess" X="50" Y="50" Width="374" Height="266" Title="[ProductName] - InstallShield Wizard" NoMinimize="yes">
<Control Id="OK" Type="PushButton" X="230" Y="243" Width="66" Height="17" Text="&Finish" TabSkip="no" Default="yes" Cancel="yes">
<Publish Event="DoAction" Value="CleanUp">ISSCRIPTRUNNING="1"</Publish>
<Publish Event="DoAction" Value="LaunchProgramFileFromSetupCompleteSuccess">LAUNCHPROGRAM And PROGRAMFILETOLAUNCHATEND <> "" And NOT Installed</Publish>
<Publish Event="EndDialog" Value="Exit">1</Publish>
<Publish Event="DoAction" Value="ShowMsiLog">MsiLogFileLocation And (ISSHOWMSILOG="1") And NOT ISENABLEDWUSFINISHDIALOG</Publish>
</Control>
我该如何处理这个问题?
答案 0 :(得分:0)
查找dll'清理'自定义操作是否存在并添加参考
<Binary Id="CleanupBinary" SourceFile="Your location of the CleanUp Dll" />
<CustomAction Id="CleanUp" BinaryKey="CleanupBinary" DllEntry="Your cleanup custom action name" />