Pracuję nad systemem wdrażania niektórych niezbędnych zależności * w moim programie. Tworzę archiwa 7z przechowywane na moim serwerze dla każdej zależności. Klient sprawdza, czy archiwum dostępne na serwerze jest nowsze od ostatniej aktualizacji lokalnej kopii, a jeśli tak, kopiuje je do systemu lokalnego, zastępując dowolną poprzednią wersję zależności.
Działa to całkiem dobrze, ale mam problem. Podczas pierwszej instalacji użytkownicy pobierają główny plik wykonywalny, a następnie ten główny plik wykonywalny przechodzi i pobiera wszystkie niezbędne zależności. Prowadzi to do bólu, ponieważ użytkownik musi czekać na główny plik wykonywalny, aby pobrać zależności przy pierwszym uruchomieniu - niezbyt dobre pierwsze wprowadzenie do mojej aplikacji.
Obecnie moja aplikacja instaluje się za pomocą samorozpakowującego się archiwum 7z. Chciałbym uwzględnić zewnętrzne zależności w tym archiwum, ale natknąłem się na problem z budowaniem tego archiwum - skompresowanie wszystkich niezbędnych zależności w jednym module zajmuje dużo czasu, więc kompilacje nie są strasznie szybkie.
Wszystko to prowadzi do mojego pytania - czy można połączyć kilka archiwów 7z w jedno archiwum bez ich dekompresji / ponownej kompresji?
* Są to zależności, których z różnych powodów nie mogę bezpośrednio skompilować w mojej aplikacji. Mogę je rozpowszechniać, ale muszą pozostać odrębnymi bytami w mojej aplikacji.