2017-02-08 4 views
0

私はWEXインストーラを使用してexeファイルを生成していますが、今はすべて正常に動作していますが、以下のようにexeパッケージに1つの検出条件を追加する必要があります。wixは検出状態で文字列を使用できません

<ExePackage 
    Id="AccessRuntime2013" 
    DetectCondition="((MsAccessInstalled = Outlook.Application.15) AND (MSOffice2013RuntimeInstalled = 0))" > 

MsAccessInstalledは、Outlookインストールのバージョンを格納し、MSOffice2013RuntimeInstalledアクセスランタイムがインストールされているか否かをチェックする変数である変数です。どちらの変数も適切に設定されています。

MsAccessInstalled = "Outlook.Application.15"とMSOffice2013RuntimeInstalledがインストールされていない場合にのみ、このexeを実行する必要があります。私は両方の条件を別々に実行する場合はそれが動作しますが、私は両方を動かすと動作しません。 Failed to parse condition "((MsAccessInstalled = Outlook.Application.15) AND (MSOffice2013RuntimeInstalled = 0))". Unexpected character at positionというエラーメッセージが表示されます。助けてください。

+0

"Windowsインストーラとは違って、書き込みは文字列と数字とは異なります。つまり、" v "接頭辞を使用する必要があります。すべての変数宣言を追加してください。 –

+0

違反はありません。ちょうど不思議です。あなたがそれをすべて入力したとき、それを読んだのですか?それは簡単でしたか? –

答えて

0

あなたは

<ExePackage 
    Id="AccessRuntime2013" 
    DetectCondition="MsAccessInstalled ~= &quot;Outlook.Application.15&quot; AND MSOffice2013RuntimeInstalled = 0" 
    ... /> 

にDetectConditionを変更したときに何が起こるかというとまた、あなたのブートストラップにいくつかのテストutil:Conditionタグを作ることによって、あなたの条件をテストすることができます。

<util:Condition Message="MSAccessInstalled condition failed">MsAccessInstalled ~= &quot;Outlook.Application.15&quot;</Condition> 
<util:Condition Message="MSOffice2013RuntimeInstalled condition failed">MSOffice2013RuntimeInstalled = 0</Condition> 

ブートストラップを実行して、いずれかの条件が失敗したかどうかを確認してください。テストが完了したらこれらの条件を削除することを忘れないでください。

関連する問題