Próbuję utworzyć skompresowaną aplikację, którą można wdrożyć.
Obecnie biorę zestaw plików, które opublikowałem z mojego IDE (Visual Studio 2008 - opublikowana aplikacja WPF) i kompresuję je w archiwum 7-Zip SFX.
Moi użytkownicy zapytali, czy mogą „zainstalować jednym kliknięciem” z 7-Zip exe. Podczas tworzenia archiwum istnieje lista parametrów. Czy istnieje sposób na ustawienie kombinacji parametrów w celu wywołania wyodrębnionego pliku wykonywalnego instalatora?
Niestety dokumentacja 7-Zip nie wydaje się obejmować tego scenariusza. Widziałem kilka płatnych aplikacji, które robią coś podobnego do tego, ale staram się, aby narzędzie, które piszę, było wolne od licencjonowanego kodu, abyśmy mogli go używać wewnętrznie.
windows
compression
7-zip
Mike G.
źródło
źródło
Odpowiedzi:
Musisz pobrać LMZA SDK z 7-Zip . Plik „installer.txt” zawiera dokumentację:
Musisz utworzyć plik config.txt.
Na przykład:
źródło
Uzgodnione rozwiązanie jest poprawne, ale tak naprawdę nie pomaga w wyjaśnieniu, co naprawdę musisz zrobić! Przeczytałem to i wiele innych rozwiązań i nie mogłem znaleźć pełnych i kompletnych prostych instrukcji, jak to zrobić.
Jestem zdezorientowany tak jak ja, proszę przeczytać mój post na blogu, który zawiera instrukcje krok po kroku, jak osiągnąć to, co opublikował Molly7244.
Jak zrobić samorozpakowujące się archiwum, które uruchamia plik setup.exe z przełącznikiem 7zip -sfx
Zwrócono mi uwagę, że linki mogą wygasnąć, więc oto kroki z mojego bloga
Krok 1 - Skonfiguruj folder instalacyjny
Aby to ułatwić, utwórz folder c: \ Zainstaluj. Tutaj skopiujemy wszystkie wymagane pliki.
Krok 2 - 7Zipuj instalatorów
Krok 3 - zdobądź moduł rozszerzeń 7z-Extra SFX
Musisz pobrać 7z-Extra.
Krok 4 - Skonfiguruj plik config.txt
Polecam użycie NotePad ++ do edycji tego pliku tekstowego, ponieważ będziesz musiał zakodować w UTF-8, poniższe instrukcje używają notatnika ++.
Wpisz coś takiego:
Edytuj to, zastępując [OPROGRAMOWANIE v1.0.0.0] nazwą produktu. Uwagi na temat parametrów i opcji pliku instalacyjnego znajdują się tutaj
CheckPoint
Powinieneś teraz mieć folder „c: \ Install” z następującymi 3 plikami:
Krok 5 - Utwórz archiwum
Te instrukcje znalazłem w Internecie, ale nigdzie nie wyjaśniłem żadnego z 4 powyższych kroków.
W oknie poleceń wpisz następujące polecenie
Zajrzyj do c: \ Install, a zobaczysz, że masz plik MyInstaller.exe
Uruchom instalatora
Kliknij dwukrotnie MyInstaller.exe, a wyświetli się komunikat. Kliknij OK, a setup.exe uruchomi się.
Uwaga PS na temat automatyzacji
Teraz, gdy masz to w katalogu c: \ Install, utworzę plik „Install.bat” i wstawię do niego skrypt kopiujący.
Teraz możesz po prostu edytować i uruchamiać plik Install.bat za każdym razem, gdy musisz odbudować nową wersję pakietu instalacyjnego.
źródło
ExecuteParameters
elementu wconfig.txt
? Na przykład:C:\Install\MyInstaller.exe some_file.txt
wykonałbysetup.exe some_file.txt
.Powinieneś także spojrzeć na NSIS . Dzięki niemu możesz stworzyć instalator skompresowany tą samą metodą, której używa 7-Zip ( LZMA ), więc powinien mieć mniej więcej ten sam rozmiar i masz pełną kontrolę nad procesem instalacji.
źródło
Opierając się na odpowiedzi jcrawfor74, oto kilka dodatkowych informacji:
Zamiast 7zS.sfx można również użyć pliku 7zS2.sfx . Jest to znacznie mniejsza wersja (28 kB vs. 140 kB), ale nie obsługuje pliku config.txt. Możesz więc po prostu pominąć to w poleceniu kopiowania. Jeśli chcesz po prostu tworzyć małe skrypty konfiguracyjne, pozwala to tworzyć mniejsze pliki EXE.
Mniejszy moduł SFX nie zadaje żadnych pytań. Wyodrębnia pliki do folderu tymczasowego jako drugi moduł, a następnie wyszukuje kandydatów na pliki wykonywalne. Zgodnie z kodem źródłowym (dostępnym również na stronie pobierania) w C \ Util \ SfxSetup \ SfxSetup.c waży pliki w różny sposób na podstawie ich nazwy i rozszerzenia, a następnie wybiera plik o najwyższym wyniku.
Oba moduły SFX działają automatycznie jako Administrator , przynajmniej w systemie Windows 10, i nie można tego skonfigurować. Chociaż takie zachowanie może być pożądane w przypadku konfiguracji ogólnosystemowych, nie zawsze tak jest. Ponadto ta decyzja opiera się wyłącznie na danych dotyczących wersji pliku, ponieważ nie zawiera manifestu, który wyraźnie mówiłby systemowi Windows, co ma robić. Kompatybilność z systemem Windows sprawdza plik i znajduje ciągi znaków, takie jak „Instalator”, które prowadzą do monitu o podniesienie uprawnień.
Jeśli potrzebujesz modułu SFX, który nie prosi o uprawnienia administratora, możesz przebudować moduł SFX ze źródła lub, prościej, edytować informacje o wersji pliku za pomocą edytora zasobów takiego jak ten . Wystarczy usunąć słowo „Setup” z pola FileDescription, w przypadku wspomnianego hakera zasobów skompiluj plik i zapisz plik EXE. Możesz również wykonać ten krok bezpośrednio na pliku 7zS.sfx lub 7zS2.sfx i zatrzymać go gdzieś, abyś mógł go użyć do budowania nie podniesionych pakietów SFX. I możesz użyć tego do pełnego dostosowania informacji o wersji pliku, aby umieścić nazwę produktu lub cokolwiek, co opisuje ładunek.
źródło