12
WiX 3.7 및 .NET 4.0 사용.
명령 줄에서 WiX 부트 스트 래퍼 EXE를 실행할 때 어떻게 하나의 변수가 레코딩됩니까?WiX 부트 스트 래퍼 : 어떻게 명령 줄에서 burn 변수를 설정합니까?
WiX 3.7 및 .NET 4.0 사용.
명령 줄에서 WiX 부트 스트 래퍼 EXE를 실행할 때 어떻게 하나의 변수가 레코딩됩니까?WiX 부트 스트 래퍼 : 어떻게 명령 줄에서 burn 변수를 설정합니까?
우선, 설정할 굽기 변수는 Overridable
으로 설정해야합니다. 이렇게하려면 WXS에 따라 가기 네임 스페이스를 포함해야합니다 : xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
그리고 나 같은 비주얼 스튜디오를 사용하는 경우 WixBalExtension.dll
을 프로젝트 참조에 포함시켜야합니다. 다음으로 명령 줄을 통해 설정하려는 모든 굽기 변수에 다음 속성을 추가해야합니다 : bal:Overridable="yes"
.
이제 이런 식으로 명령 줄을 통해 변수를 설정할 수 있습니다 아래
BootstrapperSetup.exe /i /passive MyBurnVariable1=1 MyBurnVariable2=2
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
<Bundle Name="MyProduct" Version="1.0.0" Manufacturer="MyManufacturer" UpgradeCode="PUT-UPGRADE-CODE-HERE">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">
<bal:WixStandardBootstrapperApplication LicenseUrl="MyLicense.htm" ThemeFile="MyThemeFile.xml" LocalizationFile="MyLocFile.wxl" />
</BootstrapperApplicationRef>
<Variable Name="MyBurnVariable1" bal:Overridable="yes" Type="numeric" Value="0" />
<Variable Name="MyBurnVariable2" bal:Overridable="yes" Type="numeric" Value="0" />
<Chain>
<MsiPackage Id="MyFirstMsiPackage"
SourceFile="first.msi"
InstallCondition="MyBurnVariable1 = 1" />
<MsiPackage Id="MySecondMsiPackage"
SourceFile="second.msi">
<MsiProperty Name="MY_PROPERTY" Value="[MyBurnVariable2]" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>
이것은 [WixStdBA] (https://github.com/wixtoolset/wix3/blob/4786b1306b614b83cb96ad1b07f7597992f37126/src/ext/BalExtension/wixstdba/WixStandardBootstrapperApplication.cpp)에 해당하지만 관리되는 부트 스트 래퍼 응용 프로그램에는 해당되지 않습니다. 따라서 cmdline의 변수를 구문 분석하고 재정의하는 논리가 핵심 요소가 아닌 것은 이상한 일입니다. – stukselbax