建立產品資訊清單
若要部署應用程式的必要條件,您可以建立啟動程序套件。 啟動程序封裝包含單一產品資訊清單檔案,但每個地區設定有一個封裝資訊清單。 封裝資訊清單包含封裝的當地語系化特定層面。 這包括字串、使用者授權合約和語言套件。
如需封裝資訊清單的詳細資訊,請參閱如何:建立封裝資訊清單。
建立產品資訊清單
建立產品資訊清單
建立用於啟動程序封裝的目錄。 此範例使用 C:\package。
在 Visual Studio 中,建立名為 product.xml 的新 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 以安裝封裝。 啟動程序會自動將 /qn 旗標新增至 .msi 檔案,其會以無訊息方式安裝。 如果檔案是 .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>