내 program.wxs
파일에 다음 코드 조각 한 : 나는 다음과 COMAND 사용하여이 컴파일하고있어ifndef 섹션이 작동하지 않는 이유는 무엇입니까?
<?ifndef $(var.TwoOnly) ?>
<Feature Id="FeatureOne" ... >
...
</Feature>
<?endif ?>
<?ifndef $(var.OneOnly) ?>
<Feature Id="FeatureTwo" ... >
...
</Feature>
<?endif ?>
: 내가 볼 수
candle -dOneOnly=1 program.wxs
컴파일 된 program.wixobj
보면 그 기능 두 선언은 거기서 모두 light
을 실행하면 두 기능이 나열되고 설치자는 정확히 OneOnly
또는 TwoOnly
이 설정되지 않은 것처럼 작동합니다. 내 ifndef
블록이 올바르게 작동하지 않는 이유는 무엇입니까?
참고 :
<?ifdef $(var.OneOnly) ?>
<?define productName = One Only ?>
<?else?>
<?ifdef $(var.TwoOnly) ?>
<?define productName = Two Only ?>
<?else?>
<?define productName = Both ?>
<?endif?>
<?endif?>
OneOnly
이 컴파일시에 설정되어 있어도 이름은, Both
로 표시됩니다 : 나는 또한 다음과 같은 수 있습니다.
내가 the documentation에 표시된 최소한의 경우에 내 조건의 복잡성을 감소했습니다
편집 :
<?ifndef $(var.TwoOnly) ?>
<?include featureOne.wxi ?>
<?endif?>
이 여전히 작동하지 않습니다.
명령 줄을 통해 값을 전달하는 대신 코드에 변수를 정의하면 작동합니까? WiX.chm의 예제를 그대로 사용해 보셨습니까? –
코드에서 정의한 경우 작동하지 않습니다. 나는'.chm' 예제를 그대로 사용해 보지 못했지만, 어쨌든 ... – fredley