<Commands> 요소(부트스트래퍼)
Commands
요소는 InstallChecks
요소 아래의 요소에서 설명하는 테스트를 구현하고 테스트가 실패할 경우 ClickOnce 부트스트래퍼가 설치해야 하는 패키지를 선언합니다.
구문
<Commands
Reboot
>
<Command
PackageFile
Arguments
EstimatedInstallSeconds
EstimatedDiskBytes
EstimatedTempBytes
Log
>
<InstallConditions>
<BypassIf
Property
Compare
Value
Schedule
/>
<FailIf
Property
Compare
Value
String
Schedule
/>
</InstallConditions>
<ExitCodes>
<ExitCode
Value
Result
String
/>
</ExitCodes>
</Command>
</Commands>
요소 및 특성
Commands
요소가 필요합니다. 요소에는 다음 특성이 있습니다.
attribute | 설명 |
---|---|
Reboot |
선택 사항입니다. 패키지 중 하나가 다시 시작 종료 코드를 반환하는 경우 시스템을 다시 시작할지 여부를 결정합니다. 다음 목록은 유효한 값입니다.Defer . 이후 시간까지 다시 시작이 지연됩니다.Immediate . 패키지 중 하나가 다시 시작 종료 코드를 반환한 경우 즉시 다시 시작됩니다.None . 다시 시작 요청을 무시합니다.기본값은 Immediate 입니다. |
명령
요소는 Command
요소의 자식 요소입니다 Commands
. 하나의 Commands
요소에 하나 이상의 Command
요소가 포함될 수 있습니다. 요소에는 다음 특성이 있습니다.
attribute | Description |
---|---|
PackageFile |
필수입니다. InstallConditions 에 지정된 하나 이상의 조건이 false를 반환하는 경우 설치할 패키지의 이름입니다. 패키지는 PackageFile 요소를 사용하여 동일한 파일에 정의해야 합니다. |
Arguments |
선택 사항. 패키지 파일에 전달할 명령줄 인수 집합입니다. |
EstimatedInstallSeconds |
선택 사항. 패키지를 설치하는 데 걸리는 예상 시간(초)입니다. 이 값은 부트스트래퍼가 사용자에게 표시하는 진행률 표시줄의 크기를 결정합니다. 기본값은 0이며, 이 경우 예상 시간이 지정되지 않습니다. |
EstimatedDiskBytes |
선택 사항. 설치가 완료된 후 패키지가 차지할 디스크 공간의 예상 크기(바이트)입니다. 이 값은 부트스트래퍼가 사용자에게 표시하는 하드 디스크 공간 요구 사항에 사용됩니다. 기본값은 0이며, 이 경우 부트스트래퍼는 하드 디스크 공간 요구 사항을 표시하지 않습니다. |
EstimatedTempBytes |
선택 사항. 패키지에 필요한 임시 디스크 공간의 예상 크기(바이트)입니다. |
Log |
선택 사항. 패키지가 생성하는 로그 파일에 대한 경로로, 패키지의 루트 디렉터리를 기준으로 합니다. |
InstallConditions
InstallConditions
요소는 Command
요소의 자식입니다. 각 Command
요소에는 InstallConditions
요소가 하나만 있을 수 있습니다. InstallConditions
요소가 없는 경우 항상 Condition
에 지정된 패키지가 실행됩니다.
BypassIf
BypassIf
요소는 InstallConditions
요소의 자식이며 명령이 실행되지 않아야 하는 긍정 조건을 설명합니다. 각 InstallConditions
요소에는 0개 이상의 BypassIf
요소가 있을 수 있습니다.
BypassIf
에는 다음 특성이 있습니다.
attribute | Description |
---|---|
Property |
필수입니다. 테스트할 속성의 이름입니다. 이 속성은 이전에 InstallChecks 요소의 자식에 의해 정의되어 있어야 합니다. 자세한 내용은 <InstallChecks> 요소를 참조하세요. |
Compare |
필수입니다. 수행할 비교의 형식입니다. 다음 목록은 유효한 값입니다.ValueEqualTo , ValueNotEqualTo , ValueGreaterThan , ValueGreaterThanOrEqualTo , ValueLessThan , ValueLessThanOrEqualTo , VersionEqualTo , VersionNotEqualTo , VersionGreaterThan , VersionGreaterThanOrEqualTo VersionLessThanOrEqualTo VersionLessThan ValueExists ,ValueNotExists |
Value |
필수입니다. 속성과 비교할 값입니다. |
Schedule |
선택 사항. 이 규칙을 평가해야 하는 경우를 정의하는 Schedule 태그의 이름입니다. |
FailIf
FailIf
요소는 InstallConditions
요소의 자식이며 설치를 중지해야 하는 긍정 조건을 설명합니다. 각 InstallConditions
요소에는 0개 이상의 FailIf
요소가 있을 수 있습니다.
FailIf
에는 다음 특성이 있습니다.
attribute | Description |
---|---|
Property |
필수입니다. 테스트할 속성의 이름입니다. 이 속성은 이전에 InstallChecks 요소의 자식에 의해 정의되어 있어야 합니다. 자세한 내용은 <InstallChecks> 요소를 참조하세요. |
Compare |
필수입니다. 수행할 비교의 형식입니다. 다음 목록은 유효한 값입니다.ValueEqualTo , ValueNotEqualTo , ValueGreaterThan , ValueGreaterThanOrEqualTo , ValueLessThan , ValueLessThanOrEqualTo , VersionEqualTo , VersionNotEqualTo , VersionGreaterThan , VersionGreaterThanOrEqualTo VersionLessThanOrEqualTo VersionLessThan ValueExists ,ValueNotExists |
Value |
필수입니다. 속성과 비교할 값입니다. |
String |
선택 사항. 실패 시 사용자에게 표시할 텍스트입니다. |
Schedule |
선택 사항. 이 규칙을 평가해야 하는 경우를 정의하는 Schedule 태그의 이름입니다. |
ExitCodes
ExitCodes
요소는 Command
요소의 자식입니다. ExitCodes
요소는 설치에서 패키지의 종료 코드에 대한 응답으로 수행해야 하는 작업을 결정하는 ExitCode
요소를 하나 이상 포함합니다. Command
요소 아래에는 선택적 ExitCode
요소가 하나만 있을 수 있습니다. ExitCodes
에는 특성이 없습니다.
ExitCode
ExitCode
요소는 ExitCodes
요소의 자식입니다. ExitCode
요소는 설치가 패키지의 종료 코드에 대한 응답으로 수행해야 하는 작업을 결정합니다. ExitCode
에는 자식 요소가 없으며 다음 특성이 있습니다.
attribute | Description |
---|---|
Value |
필수입니다. 이 ExitCode 요소가 적용되는 종료 코드 값 입니다. |
Result |
필수입니다. 설치가 이 종료 코드에 응답하는 방법입니다. 다음 목록은 유효한 값입니다.Success . 패키지가 성공적으로 설치된 것으로 플래그를 지정합니다.SuccessReboot . 패키지가 성공적으로 설치되었다는 플래그를 지정하고 시스템을 다시 시작하도록 지시합니다.Fail . 패키지가 실패한 것으로 플래그를 지정합니다.FailReboot . 패키지가 실패한 것으로 플래그를 지정하고 시스템을 다시 시작하도록 지시합니다. |
String |
선택 사항. 이 종료 코드에 대한 응답으로 사용자에게 표시할 값입니다. |
FormatMessageFromSystem |
선택 사항. 종료 코드에 해당하는 시스템 제공 오류 메시지를 사용할지 아니면 String 에서 제공한 값을 사용할지 결정합니다. 유효한 값은 true (시스템에서 제공하는 오류를 사용) 및 false (String 에서 제공하는 문자열을 사용)입니다. 기본값은 false 입니다. 이 속성이 false 이지만 String 이 설정되지 않은 경우 시스템 제공 오류가 사용됩니다. |
예시
다음 코드 예제에서는 .NET Framework 2.0을 설치하기 위한 명령을 정의합니다.
<Commands Reboot="Immediate">
<Command PackageFile="instmsia.exe"
Arguments= ' /q /c:"msiinst /delayrebootq"'
EstimatedInstallSeconds="20" >
<InstallConditions>
<BypassIf Property="VersionNT" Compare="ValueExists"/>
BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="2.0"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="SuccessReboot"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<Command PackageFile="WindowsInstaller-KB884016-v2-x86.exe"
Arguments= '/quiet /norestart'
EstimatedInstallSeconds="20" >
<InstallConditions>
<BypassIf Property="Version9x" Compare="ValueExists"/>
<BypassIf Property="VersionNT" Compare="VersionLessThan" Value="5.0.3"/>
<BypassIf Property="VersionMsi" Compare="VersionGreaterThanOrEqualTo" Value="3.0"/>
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
<Command PackageFile="dotnetfx.exe"
Arguments=' /q:a /c:"install /q /l"'
EstimatedInstalledBytes="21000000"
EstimatedInstallSeconds="300">
<!-- These checks determine whether the package is to be installed -->
<InstallConditions>
<!-- Either of these properties indicates the .NET Framework is already installed -->
<BypassIf Property="DotNetInstalled" Compare="ValueNotEqualTo" Value="0"/>
<!-- Block install if user does not have adminpermissions -->
<FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired"/>
<!-- Block install on Windows 95 -->
<FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatformWin9x"/>
<!-- Block install on Windows 8 or less -->
<FailIf Property="VersionNT" Compare="VersionLessThan" Value="6.2" String="InvalidPlatformWinNT"/>
<!-- Block install if Internet Explorer 5.01 or later is not present -->
<FailIf Property="IEVersion" Compare="ValueNotExists" String="InvalidPlatformIE" />
<FailIf Property="IEVersion" Compare="VersionLessThan" Value="5.01" String="InvalidPlatformIE" />
<!-- Block install if the operating system does not support x86 -->
<FailIf Property="ProcessorArchitecture" Compare="ValueNotEqualTo" Value="Intel" String="InvalidPlatformArchitecture" />
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<ExitCode Value="4097" Result="Fail" String="AdminRequired"/>
<ExitCode Value="4098" Result="Fail" String="WindowsInstallerComponentFailure"/>
<ExitCode Value="4099" Result="Fail" String="WindowsInstallerImproperInstall"/>
<ExitCode Value="4101" Result="Fail" String="AnotherInstanceRunning"/>
<ExitCode Value="4102" Result="Fail" String="OpenDatabaseFailure"/>
<ExitCode Value="4113" Result="Fail" String="BetaNDPFailure"/>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="true" String="GeneralFailure" />
</ExitCodes>
</Command>
</Commands>