Zostałem poproszony o dołączenie instalatora Bonjour firmy Apple do naszego instalatora msi, aby Bonjour automatycznie instalował się razem z naszym oprogramowaniem. Ktoś to zrobił wcześniej? To nie wydaje się być trywialne, ponieważ instalator msi nie może włączyć i uruchomić innego. Zakładam, że potrzebuję jakiegoś pliku wsadowego, aby kolejno uruchomić dwa instalatory?Łączenie instalatora Windows Bonjour z systemem Windows w naszym msi
Odpowiedz
To byłoby trochę więcej pracy i jest podatne na problemy z aktualizacją, ale można wziąć pakiet MSI Bonjour i dekompilować go przy użyciu ciemności. Konwertuj zdekompilowany plik MSI do modułu scalania, który może być dołączony do instalatora, a będziesz mieć pojedynczą instalację. Zrobiłem to z niektórymi instalacjami sterowników w przeszłości i zazwyczaj nie jest to takie skomplikowane.
Potrzebujesz bootstrappera; istnieje kilka darmowych dostępnych tam, w tym jeden opracowany w WiX nazwie Burn.
Musisz użyć bootstrapera, aby połączyć instalację Bonjour z instalatorem. Jeśli korzystasz z WiX 3.6 lub nowszego, dobrym rozwiązaniem jest użycie pakietu Burn do utworzenia pakietu pakietów.
Znalazłem instalator Bonjour, pobierając pakiet Bonjour SDK i otwierając go w 7-zip, ale jestem pewien, że zainstalowanie SDK również umożliwiłoby dostęp do niego.
Sposób, w jaki zazwyczaj to robię, polega na dodaniu nowego pliku źródłowego do projektu instalacji dla każdego pakietu zależności w celu oddzielenia tej logiki od głównej konfiguracji aplikacji.
Pakiet Bonjour może być wymieniony jako zdalny ładunek do pobrania w locie lub do konfiguracji. W takim przypadku wydaje się, że jest bardziej prawdopodobne, że zostanie ono wbudowane (skompresowane = "tak"). Jeśli chcesz dodać dodatkowe zależności związane z bonjour lub parametrami do przekazania, możesz je również zdefiniować tutaj.
<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>
W głównym pakiecie wystarczy dodać odniesienie do właściwej grupy pakietów.
<Chain>
<PackageGroupRef Id="Bonjour"/>
<MsiPackage SourceFile="path\to\YourProduct.msi"/>
</Chain>
Od Bonjour używa MSI zamiast pliku wykonywalnego, nie trzeba robić nic, aby wykryć, czy jest on obecny, czy nie; Burn to załatwi za ciebie. W rzeczywistości, ponieważ WiX zbiera większość informacji potrzebnych pakietowi z MSI, może to być przesada i można bezpośrednio umieścić element MsiPackage w swoim łańcuchu bezpośrednio.
Nie zapomnij o dokładnym sprawdzeniu, czy to robisz, Apple's terms.
Ponieważ zauważyłem, ta odpowiedź jest coraz wiele uwagi ostatnio, pomyślałem, że powinienem zaktualizować ją z pewnym więcej informacji. I jeden z linków był martwy. Tak naprawdę tego nie testowałem, ale to jest kierunek, w którym chciałbym wejść. Daj mi znać, jeśli pojawią się problemy i zaktualizuję odpowiedź. –
Wix Burn jest obecnie stosunkowo stabilny. Korzystam z Wix 3.8.
Jeśli możesz redystrybuować Bonjour Installer, możesz połączyć instalator w Wix Burn. Możesz nawet ustawić warunek, aby Bonjour był określony jako preinstalacja dla twojego instalatora. Jeśli nie jest obecny, Bonjour zostanie wdrożony, w przeciwnym razie może zostać pominięty.
Możesz sprawdzić ten link w celu zrozumienia Burn.
- 1. Problemy z pakietem Instalatora Windows
- 2. Bonjour/DNS-SD na Windows
- 3. Ramy instalatora aplikacji dla systemu Windows
- 4. LLMNR na Windows vs Zeroconf vs. Bonjour
- 5. Łączenie kolekcji z DataGridView w Windows Forms
- 6. ASP.NET aplikacji instalatora MSI wiele przypadków
- 7. Korzystanie z metody App.Current.Terminate() w telefonie z systemem Windows 8
- 8. Wyłącz przewijanie w pionie przewijania w telefonie z systemem Windows
- 9. Jak ustawić ikonę Instalatora pakietu Windows zamiast domyślnego w WiX
- 10. Efekt dźwiękowy w telefonie z systemem Windows 7
- 11. Przeciek pamięci w telefonie z systemem Windows 8
- 12. Programowo wyślij wiadomość SMS w telefonie z systemem Windows 8
- 13. Uzyskiwanie współrzędnych GPS w telefonie z systemem Windows 7
- 14. Jak ufać samopodpisanemu certyfikatowi w aplikacji sklepu z systemem Windows
- 15. WiX: Zapobieganie uruchamianiu 32-bitowego instalatora w 64-bitowym systemie Windows
- 16. Tworzenie wielu wirtualnych komputerów z systemem Windows XP w trybie Windows XP
- 17. Zamykanie komputera z systemem Windows z terminalu linux
- 18. Jak połączyć się z systemem Windows SQL Server z Ubuntu
- 19. Komunikacja Windows MTP/WPD z urządzeniem z systemem Android
- 20. Łączenie git z githubem w systemie Windows 7 bez bashu
- 21. Wersja exe w nazwie pliku instalatora MSI (VS 2010)
- 22. Czy aplikacje Windows Phone 7 są kompatybilne z urządzeniami z systemem Windows Phone 8?
- 23. Problemy dotyczące instalowania aplikacji za pomocą Instalatora Windows
- 24. Dlaczego OpenLDAP dla instalatora systemu Windows wymaga numeru seryjnego?
- 25. Problem z zakończeniami linii między komputerem Mac a systemem Windows
- 26. Klient pulpitu OLAP z systemem innym niż Windows?
- 27. Jak programowo zablokować stację roboczą z systemem Windows?
- 28. Nie można zdalnie podłączyć mojego komputera z systemem Windows 8.1
- 29. Czy mogę hostować błyszczącą aplikację na komputerze z systemem Windows?
- 30. Włączanie klawiatury ekranowej z systemem Windows 7 do aplikacji WPF
Czy jest to dozwolone zgodnie z warunkami świadczenia usług Apple w zakresie dystrybucji Bonjour? –
@Andrey - To nie jest właściwa odpowiedź w rzeczywistości, jak wskazujesz, prawdopodobnie nielegalne. Sprawdź inne odpowiedzi na temat bootstrapper: http://stackoverflow.com/questions/8727057/how-to-add-an-msi-file-to-my-installer, musisz uruchomić z Bonjour.msi ou Bonjour64.msi –
@SimonMourier tak naprawdę, po przeczytaniu warunków korzystania z usługi wydaje mi się, że to może być legalne, nie? –