2010-11-13 78 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