0

私はWiXで次のものを持っています:

ダイアログには、Excel2007またはExcel2010、あるいはその両方のソフトウェアをインストールするための2つのチェックボックスがあります。

<Control Type="CheckBox" Id="Excel2007" Width="88" Height="17" X="22" Y="120" Text="Excel 2007" Property="INSTALLEXCEL2007_2010" CheckBoxValue="1" />

<Control Type="CheckBox" Id="Excel2010" Width="88" Height="17" X="22" Y="120" Text="Excel 2010" Property="INSTALLEXCEL2010" CheckBoxValue="1" />

PIA(Excel 2007/2010用のツール)がインストールされているかどうかを確認するために、ユーザーがどのチェックボックスを設定したかを評価したいと思います。そうでない場合は、インストールを停止してメッセージを表示する必要があります。

現在の問題は次のとおりです。

ユーザーの判断がわからないため、起動条件としてこれら2つの値を確認できません。次のように、チェックボックスがあるダイアログで条件を使用できると思いました。

<Publish Dialog="ExcelConfigDlg" Control="ExcelConfigDlg_Proceed" Event="NewDialog" Value="InstallDirDlg"><![CDATA[INSTALLEXCEL2007>="1"]]></Publish>

ただし、これは機能しません。ボタンをクリックすると、インストールルーチンが続行されます。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

1

最初と2番目の質問に答える:

<Publish Dialog="ExcelConfigDlg" Control="ExcelConfigDlg_Proceed" Event="NewDialog" Value="InstallDirDlg"><![CDATA[INSTALLEXCEL2007_2010="1"]]></Publish>

ユーザーがチェックボックスを選択しなかった場合は、警告ダイアログを表示する必要があると思います。これは私の警告ダイアログの1つの例です:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
 <UI>
  <Dialog Id="WarningDlg" Width="260" Height="85" Title="!(loc.Title)">
    <Control Id="Ok" Type="PushButton" X="112" Y="57" Width="56" Height="17" Default="yes" Cancel="yes" Text="Ok">
      <Publish Event="EndDialog" Value="Return">1</Publish>
    </Control>
    <Control Id="Text" Type="Text" X="48" Y="15" Width="194" Height="30" NoPrefix="yes" Text="!(loc.IntegerOnlyDlgDecription)" />
    <Control Id="Icon" Type="Icon" X="15" Y="15" Width="24" Height="24" FixedSize="yes" IconSize="32" Text="Exclamation" />
  </Dialog>
</UI>
</Fragment>

そして、以下を使用します。

<Publish Dialog="ExcelConfigDlg" Control="ExcelConfigDlg_Proceed" Event="SpawnDialog" Value="WarningDlg"><![CDATA[(INSTALLEXCEL2007_2010<>"1") AND (INSTALLEXCEL2010<>"1")]]></Publish>
于 2013-02-20T14:49:09.773 に答える
0

チェックボックスの値を検証し、それに応じて、さらにいくつかの値を確認したいと思いました(RegistrySearchを介して受信)。今まで、私は次のようになりました(これは今のところ機能しています):

<Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Weiter" Event="NewDialog" Value="FileConfigDlg" Order="1"><![CDATA[INSTALLEXCEL2003="1" OR INSTALLEXCEL2007="1" OR INSTALLEXCEL2010="1"]]></Publish>
        <Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Weiter" Event="SpawnDialog" Value="CancelDlg" Order="2"><![CDATA[INSTALLEXCEL2003<>"1" AND INSTALLEXCEL2007<>"1" AND INSTALLEXCEL2010<>"1"]]></Publish>
        <Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Weiter" Event="SpawnDialog" Value="CancelDlg" Order="3"><![CDATA[INSTALLEXCEL2007="1" AND OFFICERUNTIME<"10.0.31007"]]></Publish>
        <Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Weiter" Event="SpawnDialog" Value="CancelDlg" Order="4"><![CDATA[INSTALLEXCEL2007="1" AND OFFICERUNTIME<"10.0.31007" AND OFFICE_2007_PIA<>"Microsoft Office 2007 Primary Interop Assemblies"]]></Publish>
        <Publish Dialog="ExcelChooserDlg" Control="ExcelChooser_Weiter" Event="SpawnDialog" Value="CancelDlg" Order="5"><![CDATA[INSTALLEXCEL2010="1" AND OFFICERUNTIME<"10.0.31007" AND OFFICE_2010_PIA<>"Microsoft Office 2010 Primary Interop Assemblies"]]></Publish>

これが最善の解決策であるかどうかはわかりませんが、私が述べたように、これまでのところうまく機能しています。

于 2013-02-20T17:18:57.807 に答える