4
<ExePackage InstallCommand='/q /action=UPGRADE /HIDECONSOLE /IACCEPTSQLSERVERLICENSETERMS=1 /INSTANCENAME=ABC' InstallCondition="SqlVersion32 &lt; v10.50.1600.1 AND SqlEdition32 = 'Express Edition'"/>

上記のコードを使用しています。SqlEdition32インストール状態で、 (その値はレジストリ検索によって提供されます) が Express エディションであるかどうかを確認したいのですが、次のようなエラーが発生しています:

エラー 0x8007000d: 条件 "SqlVersion32 < v10.50.1600.1 AND SqlEdition32='Express Edition'" の解析に失敗しました。46 位に予期しない文字があります。

位置 46 は、SqlEdition32文字列変数を文字列 'Express Edition' と比較しているところです。WiX で文字列を比較する方法を知りたいですか?

4

2 に答える 2

1

一重引用符ではなく、文字列を二重引用符で囲みます。

于 2014-04-29T19:22:45.490 に答える
1

次の 2 つの解決策があります。

  1. 二重引用符を一重引用符に、またはその逆に置き換えることができるため、次のようになります。
InstallCondition='SqlVersion32
    &lt; v10.50.1600.1 AND SqlEdition32 = "Express Edition"'
  1. または、一重引用符'" ;に置き換えます。、あなたは得るでしょう:
InstallCondition="SqlVersion32 &lt; v10.50.1600.1 AND
    SqlEdition32 = &quot;Express Edition&quot;"
于 2014-10-19T13:01:24.367 に答える