제품 매니페스트 만들기
부트스트래퍼 패키지를 만들어 애플리케이션 필수 구성 요소를 배포할 수 있습니다. 부트스트래퍼 패키지에는 단일 제품 매니페스트 파일이 포함되지만 각 로캘에 대한 패키지 매니페스트도 포함됩니다. 패키지 매니페스트에는 패키지의 지역화 관련 측면이 포함됩니다. 문자열, 최종 사용자 사용권 계약, 언어 팩이 있습니다.
패키지 매니페스트에 대한 자세한 내용은 방법: 패키지 매니페스트 만들기를 참조하세요.
제품 매니페스트 만들기
제품 매니페스트를 만들려면
부트스트래퍼 패키지 디렉터리를 만듭니다. 이 예제에서는 C:\package를 사용합니다.
Visual Studio에서 새 XML 파일, product.xml을 만들어 C:\package 폴더에 저장합니다.
패키지의 XML 네임스페이스 및 제품 코드를 설명하는 다음 XML을 추가합니다. 제품 코드를 패키지의 고유 식별자로 바꿉니다.
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Custom.Bootstrapper.Package">
패키지에 종속성이 있음을 지정하는 XML을 추가합니다. 이 예제에서는 Microsoft Windows Installer 3.1에 대한 종속성을 사용합니다.
<RelatedProducts> <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" /> </RelatedProducts>
부트스트래퍼 패키지에 있는 모든 파일을 나열하는 XML을 추가합니다. 이 예제에서는 패키지 파일 이름 CorePackage.msi를 사용합니다.
<PackageFiles> <PackageFile Name="CorePackage.msi"/> </PackageFiles>
CorePackage.msi 파일을 C:\package 폴더로 복사하거나 이동합니다.
부트스트래퍼 명령을 사용하여 패키지를 설치하는 XML을 추가합니다. 부트스트래퍼는 자동으로 설치되는 .msi 파일에 /qn 플래그를 추가합니다. .exe 파일인 경우 부트스트래퍼는 셸을 사용하여 .exe 파일을 실행합니다. 다음 XML은 CorePackage.msi에 인수를 표시하지 않지만
Arguments
특성에 명령줄 인수를 지정할 수 있습니다.<Commands> <Command PackageFile="CorePackage.msi" Arguments="">
이 부트스트래퍼 패키지가 설치되어 있는지 확인하는 다음 XML을 추가합니다. 제품 코드를 재배포 가능 구성 요소의 GUID로 바꿉니다.
<InstallChecks> <MsiProductCheck Property="IsMsiInstalled" Product="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/> </InstallChecks>
부트스트래퍼 구성 요소가 이미 설치되어 있는지에 따라 부트스트래퍼 동작을 변경하는 XML을 추가합니다. 구성 요소가 설치된 경우 부트스트래퍼 패키지가 실행되지 않습니다. 다음 XML은 이 구성 요소에 관리자 권한이 필요하므로 현재 사용자가 관리자인지 확인합니다.
<InstallConditions> <BypassIf Property="IsMsiInstalled" Compare="ValueGreaterThan" Value="0"/> <FailIf Property="AdminUser" Compare="ValueNotEqualTo" Value="True" String="NotAnAdmin"/> </InstallConditions>
설치에 성공하고 다시 부팅해야 하는 경우 종료 코드를 설정하는 XML을 추가합니다. 다음 XML은 부트스트래퍼가 패키지 설치를 계속하지 않음을 나타내는 Fail 및 FailReboot 종료 코드를 보여줍니다.
<ExitCodes> <ExitCode Value="0" Result="Success"/> <ExitCode Value="1641" Result="SuccessReboot"/> <ExitCode Value="3010" Result="SuccessReboot"/> <DefaultExitCode Result="Fail" String="GeneralFailure"/> </ExitCodes>
부트스트래퍼 명령 섹션을 종료하는 다음 XML을 추가합니다.
</Command> </Commands>
C:\package 폴더를 Visual Studio 부트스트래퍼 디렉터리로 이동합니다. 이전 버전의 Visual Studio의 경우 \Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages 디렉터리입니다.
예시
제품 매니페스트에는 사용자 지정 필수 구성 요소에 대한 설치 지침이 포함됩니다.
<?xml version="1.0" encoding="utf-8" ?>
<Product
xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
ProductCode="Custom.Bootstrapper.Package">
<RelatedProducts>
<DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
</RelatedProducts>
<PackageFiles>
<PackageFile Name="CorePackage.msi"/>
</PackageFiles>
<InstallChecks>
<MsiProductCheck Property="IsMsiInstalled"
Product="{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/>
</InstallChecks>
<Commands>
<Command PackageFile="CorePackage.msi" Arguments="">
<InstallConditions>
<BypassIf Property="IsMsiInstalled"
Compare="ValueGreaterThan" Value="0"/>
<FailIf Property="AdminUser"
Compare="ValueNotEqualTo" Value="True"
String="NotAnAdmin"/>
</InstallConditions>
<ExitCodes>
<ExitCode Value="0" Result="Success"/>
<ExitCode Value="1641" Result="SuccessReboot"/>
<ExitCode Value="3010" Result="SuccessReboot"/>
<DefaultExitCode Result="Fail" String="GeneralFailure"/>
</ExitCodes>
</Command>
</Commands>
</Product>