2011-06-20 17 views
7

ürünümüze bağlayarak Apple'ın Bonjour yükleyicisini kendi msi yükleyicimize paketlememiz istendi, böylece Bonjour otomatik olarak yazılımımızla birlikte yüklenir. Bunu daha önce yapan var mı? Bir msi yükleyicisi bir başkasını dahil edemediğinden dolayı önemsiz görünmüyor. İki yükleyiciyi sırayla çalıştırmak için bir çeşit toplu dosyaya ihtiyacım var mı?Apple'ın Windows Bonjour yükleyicisini msi

cevap

1

Bu biraz daha fazla iş ve yükseltme ile ilgili sorunlara eğilimlidir, ancak Bonjour MSI alabilir ve karanlık kullanarak derleme yapabilirsiniz. Decompiled MSI'yi yükleyicinize eklenebilecek bir Birleştirme modülüne dönüştürün ve tek bir kurulumunuz olacaktır. Bunu geçmişte bazı sürücü yüklemeleri ile yaptım ve genellikle bu karmaşık değil.

+0

Bu, Apple'ın Bonjour'u dağıtmaya yönelik hizmet şartlarına göre izinli midir? –

+0

@Andrey - Muhtemelen yasadışı olarak işaret ettiğin gibi doğru cevap bu değil. Bootstrapper ile ilgili diğer cevapları kontrol edin: http://stackoverflow.com/questions/8727057/how-to-add-an-msi-file-to-my-installer Bonjour.msi ile önyükleme yapmanız gerekir ou Bonjour64.msi –

+0

@SimonMourier aslında, hizmet şartlarını okuduktan sonra, bu bana göre, bu gerçekten yasal olabilir, değil mi? –

1

Bir önyükleyiciye ihtiyacınız var; WiX'te geliştirilen ve Burn olarak adlandırılan bir kişi de dahil olmak üzere orada serbestçe ulaşılabilir birkaç tane var.

9

Bonjour yüklemesini yükleyicinizle zincirlemek için bir önyükleyiciyi kullanmanız gerekir. WiX 3.6 veya daha yenisini kullanıyorsanız, paket paketi oluşturmak için Burn'u kullanmak iyi bir seçenektir.

Bonjour yükleyicisini Bonjour SDK'yı indirerek ve 7-zip halinde açarak buldum, ancak SDK'nın yüklenmesini de sağladığınızdan eminim.

Genelde bunu yapmayı sevdiğim yol, bu mantığı ana uygulama kurulumundan ayrı tutmak için her bağımlılık paketi için kurulum projenize yeni bir kaynak dosya eklemektir.

Bonjour paketi, anında almak için uzak bir yük olarak listelenebilir veya kurulumunuza eklenebilir. Bu durumda, onu (Sıkıştırılmış = "evet") oluşturması daha muhtemel görünüyor. Bonjour veya parametrelerle ilgili ekstra bağımlılıklar eklemeniz gerekiyorsa, bunları burada da tanımlayabilirsiniz.

<Fragment> 
    <!-- if a web link actually exists, I didn't find it... --> 
    <?define BonjourWebLink = "http://path/to/Bonjour.msi"?> 

    <PackageGroup Id="BonjourWeb"> 
     <MsiPackage Id="BonjourWeb" 
        Compressed="no" 
        DownloadUrl="$(var.BonjourWebLink)"> 
     </MsiPackage> 
    </PackageGroup> 

    <PackageGroup Id="Bonjour"> 
     <MsiPackage Id="Bonjour" 
        Compressed="yes" 
        SourceFile="path\to\Bonjour.msi"/> 
    </PackageGroup> 
</Fragment> 

Ana paketinizde doğru paket grubuna bir başvuru eklemeniz yeterlidir. Bonjour yerine yürütülebilir MSI kullandığından

<Chain> 
    <PackageGroupRef Id="Bonjour"/> 

    <MsiPackage SourceFile="path\to\YourProduct.msi"/> 
</Chain> 

, bunu mevcut olup olmadığını tespit etmek için bir şey yapmanıza gerek yoktur; Burn senin için halledecek. Aslında, WiX, paketinizin MSI'dan aldığı bilginin çoğunu topladığından, bu fazla olabilir ve MsiPackage öğesini doğrudan zincirinize yerleştirebilirsiniz.

Bunu yapmak için Apple's terms'u dikkatlice kontrol etmeyi unutmayın.

+0

, ben biraz daha bilgilerle güncellemek gerektiğini düşündüm. Ve bağlantılardan biri öldü. Bunu gerçekten denemedim, ama içeri girecek yönüm var. Sorunların olup olmadığını bana bildirin ve cevabı güncelleyeceğim. –

0

Wix Burn şimdi nispeten kararlıdır. Wix 3.8 kullanıyorum.

Bonjour Installer'ı yeniden dağıtma izniniz varsa, yükleyiciyi Wix Burn'da zincirleyebilirsiniz. Bonjour'u yükleyiciniz için önkoşul olarak belirtmek için bir koşul koyabilirsiniz. Eğer mevcut değilse, Bonjour dağıtılacaktır, aksi halde atlanabilir.

Bu bağlantıyı anlamak için bu bağlantıyı kontrol edebilirsiniz. Bu cevap son zamanlarda ilgi çok oluyor fark bu yana

http://wixtoolset.org/documentation/manual/v3/bundle/

İlgili konular