Ürün bildirimi oluşturma

Uygulamanızın önkoşullarını dağıtmak için bir önyükleyici paketi oluşturabilirsiniz. Önyükleyici paketi tek bir ürün bildirim dosyası içerir, ancak her yerel ayar için bir paket bildirimi içerir. Paket bildirimi, paketinizin yerelleştirmeye özgü yönlerini içerir. Buna dizeler, son kullanıcı lisans sözleşmeleri ve dil paketleri dahildir.

Paket bildirimleri hakkında daha fazla bilgi için bkz . Nasıl yapılır: Paket bildirimi oluşturma.

Ürün bildirimini oluşturma

Ürün bildirimini oluşturmak için

  1. Önyükleyici paketi için bir dizin oluşturun. Bu örnekte C:\package kullanılır.

  2. Visual Studio'da product.xml adlı yeni bir XML dosyası oluşturun ve C:\package klasörüne kaydedin.

  3. Paketin XML ad alanını ve ürün kodunu açıklamak için aşağıdaki XML'yi ekleyin. Ürün kodunu paket için benzersiz bir tanımlayıcıyla değiştirin.

    <Product
    xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper"
    ProductCode="Custom.Bootstrapper.Package">
    
  4. Paketin bir bağımlılığı olduğunu belirtmek için XML ekleyin. Bu örnekte, Microsoft Windows Installer 3.1'e bağımlılık kullanılır.

    <RelatedProducts>
        <DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
      </RelatedProducts>
    
  5. Önyükleyici paketindeki tüm dosyaları listelemek için XML ekleyin. Bu örnekte CorePackage.msi paket dosyası adı kullanılmaktadır.

    <PackageFiles>
        <PackageFile Name="CorePackage.msi"/>
    </PackageFiles>
    
  6. CorePackage.msi dosyasını kopyalayın veya C:\package klasörüne taşıyın.

  7. Önyükleyici komutlarını kullanarak paketi yüklemek için XML ekleyin. Önyükleyici ,msi dosyasına /qn bayrağını otomatik olarak ekler ve bu da sessizce yüklenir. Dosya bir .exe ise, önyükleyici kabuk kullanarak .exe dosyasını çalıştırır. Aşağıdaki XML, CorePackage.msi için bağımsız değişken göstermez, ancak komut satırı bağımsız değişkenini özniteliğine Arguments yerleştirebilirsiniz.

    <Commands>
        <Command PackageFile="CorePackage.msi" Arguments="">
    
  8. Bu önyükleyici paketinin yüklü olup olmadığını denetlemek için aşağıdaki XML'yi ekleyin. Ürün kodunu yeniden dağıtılabilir bileşenin GUID değeriyle değiştirin.

    <InstallChecks>
        <MsiProductCheck
            Property="IsMsiInstalled"
            Product="{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"/>
    </InstallChecks>
    
  9. Önyükleyici bileşeninin zaten yüklü olmasına bağlı olarak önyükleyici davranışını değiştirmek için XML ekleyin. Bileşen yüklüyse önyükleyici paketi çalışmaz. Aşağıdaki XML, bu bileşen yönetici ayrıcalıkları gerektirdiğinden geçerli kullanıcının yönetici olup olmadığını denetler.

    <InstallConditions>
        <BypassIf
           Property="IsMsiInstalled"
           Compare="ValueGreaterThan" Value="0"/>
        <FailIf Property="AdminUser"
            Compare="ValueNotEqualTo" Value="True"
            String="NotAnAdmin"/>
    </InstallConditions>
    
  10. Yükleme başarılı olursa ve yeniden başlatma gerekiyorsa çıkış kodlarını ayarlamak için XML ekleyin. Aşağıdaki XML, önyükleyicinin paketleri yüklemeye devam etmediğini gösteren Fail ve FailReboot çıkış kodlarını gösterir.

    <ExitCodes>
        <ExitCode Value="0" Result="Success"/>
        <ExitCode Value="1641" Result="SuccessReboot"/>
        <ExitCode Value="3010" Result="SuccessReboot"/>
        <DefaultExitCode Result="Fail" String="GeneralFailure"/>
    </ExitCodes>
    
  11. Önyükleyici komutlarının bölümünü sonlandırmak için aşağıdaki XML'yi ekleyin.

        </Command>
    </Commands>
    
  12. C:\package klasörünü Visual Studio önyükleyici dizinine taşıyın. Visual Studio'nun eski sürümleri için bu, \Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages dizinidir.

Örnek

Ürün bildirimi, özel önkoşullar için yükleme yönergelerini içerir.

<?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>