2010-11-13 37 views
0

我有一个修改的FilesInUse对话框。只是将它包含在项目中并更改UI中的引用并不能帮助 - 在构建安装项目时,我会收到“ICE20:标准对话框:在对话框表中找不到”FilesInUse“错误。在WIX项目中包含修改的FilesInUse对话框

浏览我发现一个咨询网 - 到剿ICE验证了ICE20。那么,用这样的设置构建项目效果很好,而且msi也可以正常工作,但我不确定这是否是解决问题的好方法。

另一个建议是修改FilesInUse和引用删除WixUIExtension,但据我所知,这样我会跟所有需要的对话框文件复制到我的项目结束了。这我想避免。

那么,什么可以做,以正确包括我的WiX工程定制FilesInUse?

回答

0

请参阅相关的问题和答案在这里:WiX replace dialog

用户燕斯克利亚连科回答03月25 '11:

夫妇的文章,帮助您:

WiX Tutorial

Neil Sleightholm's article

你应该鳍d你所需要的所有信息。

用户鲍勃Arnson回答03月25 '11:

参见“改变的UI序列内置的对话框中设置”中的主题 “自定义内置WixUI对话集”中WiX.chm。

2

好的,我只是花了一些时间试图找出如何解决这个问题。

虽然在建议的线程中有一些很好的参考,但我认为FilesInUse对话框更具体一些,因此我决定为这个问题写一个更具体的解决方案。

看到的,问题是,MSI使用FilesInUse自动对话框,所以如果你试图以某种方式改变它,你就会得到如FilesInUse在对话表中不存在错误,或者在表中重复FilesInUse对话框,如果你正在引用您的自定义对话框来自其他文件。

我发现工作是不是在所有使用DialogRef到维克斯的FilesInUse对话,反而使我的自定义对话框中的主UI文件(其中,我通常把DialogRefFilesInUse)并将其命名为FilesInUse的解决方案。

希望这有助于具有相同问题的其他人。

+0

不适合我。要打压ICE20 – 2014-01-03 08:21:01

5

您可以使用自定义FilesInUse对话框以下方式:

<Fragment> 
<UI> 
    <Dialog Id="FilesInUse" Width="370" Height="270" Title="Your product name"> 
    <Control Id="Retry" Type="PushButton" X="304" Y ="243" Width="56" Height="17" Text="Retry" Default="yes" Cancel="yes"> 
     <Publish Event="EndDialog" Value="Retry">1</Publish> 
    </Control> 
    <Control Id="Ignore" Type="PushButton" X="235" Y ="243" Width="56" Height="17" Text="Ignore"> 
     <Publish Event="EndDialog" Value="Ignore">1</Publish> 
    </Control> 
    <Control Id="Exit" Type="PushButton" X="235" Y ="243" Width="56" Height="17" Text="Exit"> 
     <Publish Event="EndDialog" Value="Exit">1</Publish> 
    </Control> 
    <Control Id ="InUseFiles" Type="ListBox" Width="300" Height="150" X="30" Y ="60" Property="FileInUseProcess" Sorted="yes" TabSkip="yes" /> 
    </Dialog> 
</UI> 
</Fragment> 

你只需要这个对话框引用到您的自定义InstallDialog与标签

<DialogRef Id="FilesInUse" /> 

提及的所有标签都是兼职的ICE20 Dialog Requierements

希望这会有所帮助。祝你今天愉快。

+0

不是为我工作ICE验证。必须抑制ICE20的ICE验证 – 2014-01-03 08:20:30