it-swarm.asia

7-Zip kendiliğinden açılan bir arşiv (SFX) arşivinden çıkarıldıktan sonra bir dosyayı çalıştırmak mümkün müdür?

Sıkıştırılmış konuşlandırma yapabilen bir uygulama yapmaya çalışıyorum.

Şu anda IDE (Visual Studio 2008 - WPF tarafından yayınlanan uygulama) sayfamdan yayınladığım bir dizi dosya alıyorum ve bunları 7-Zip SFX arşivinde sıkıştırıyorum.

Kullanıcılarım, 7-Zip exe'den "tek tıklamayla kurulum" yapıp yapamayacaklarını sordular. Arşivi oluştururken bir parametre listesi var. Çıkarılan yükleyiciyi çalıştırmak için bir çeşit parametre kombinasyonu ayarlamanın bir yolu var mı?

Maalesef, 7-Zip dokümantasyonu bu senaryoyu kapsamıyor gibi görünüyor. Buna benzer bir şey yapan birkaç ücretli uygulama gördüm, ancak aracı dahili olarak kullanabilmemiz için lisanslı koddan uzak tutmaya çalışıyorum.

37
Mike G

Kurulumcular için SFX modülleri

Yükleyiciler için SFX modülleri harici bir pakete dahil edilmiştir (7z_extra). Bu modülleri www.7-Zip.org adresinden indirebilirsiniz. Yükleyiciler için SFX modülleri (7zS.sfx ve 7zSD.sfx) kendi kurulum programınızı oluşturmanıza izin verir. Böyle bir modül arşivi kullanıcının geçici klasörüne çıkartır ve belirli bir programı çalıştırır ve program bittikten sonra geçici dosyaları kaldırır. Yükleyiciler için kendiliğinden açılan bir arşiv, 3 dosyaya katılmak üzere oluşturulmalıdır: SFX_Module, Installer_Config, 7z_Archive. Ayrıca, isteğe bağlı bir dosya olan Installer_Config'e izin verilir. Bir yükleyici kendiliğinden açılan bir arşiv oluşturmak için aşağıdaki komutu kullanabilirsiniz:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe

Kurulum dosyaları 7z arşivine eklenmeden önce sıkıştırılmamışsa, optimal olarak küçük bir kurulum paketi boyutu elde edilebilir.

Yükleyici modülü için -y anahtarı, sessiz mod çıkarımını belirtir.

Kaynak

Paketi açtıktan sonra çalışacak bir program belirlemek için RunProgram niteliğini kullanın. Örneğin, işte paketten çıkardıktan sonra config.txt komutunu çalıştıran Install.cmd örneği. Mevcut çalışma dizini, genişletilmiş archive.7z ağacının en üst seviyesi olacak, bu yüzden Install.cmd yer almalıdır.

;[email protected]@!UTF-8!
Title="Your Title"
RunProgram="Install.cmd"
;[email protected]@!

SFX yürütülebilir dosyasına iletilen argümanlar, Install.cmd betiğine iletilir.

33
Molly7244

Kararlaştırılan çözüm doğrudur, ancak gerçekte yapmanız gerekenleri açıklamanıza yardımcı olmaz !. Bunu ve daha birçok çözümü okudum ve bunun nasıl yapılacağına dair tam ve eksiksiz basit talimatlar bulamadım.

Kafam karıştı, lütfen Molly7244'ün yayınladıklarını nasıl elde edeceğinize dair adım adım talimatlar içeren blog yazımı okuyun.

setup.exe dosyasını 7Zip -sfx anahtarıyla çalıştıran kendiliğinden açılan bir arşiv nasıl yapılır

Bloglarımdaki adımlar işte bu yüzden bağlantılar kopabileceğime dikkatimi çekti.

Adım 1 - Kurulum klasörünüzü kurun

Bunu kolaylaştırmak için bir klasör oluşturun: c:\Install. Gerekli tüm dosyaları kopyalayacağımız yer burasıdır.

Adım 2 - 7Zilgisayarlarınızı kopyalayın

  1. .Msi ve setup.exe dosyanızın bulunduğu klasöre gidin
  2. Hem .msi hem de setup.exe dosyasını seçin.
  3. Sağ tıklayın ve 7Zip -> "Arşive ekle" seçeneğini seçin
  4. Arşivi "Installer.7z" olarak adlandırın (veya seçtiğiniz bir adı)
  5. Tamam'ı tıklayın.
  6. Şimdi "Installer.7z" olmalıdır.
  7. Bu .7z dosyasını c:\Install dizine kopyalayın

Adım 3 - 7z-Extra sfx genişletme modülünü edinin

7z-Extra'yı indirmeniz gerekiyor.

  1. Gitmek için bu linki takip edin 7Zip'i indirin
  2. Beta sürümü doğru olmadığı için 9.20 sürümünü (@ mayıs-2015 gibi) indirmeniz gerekir.
  3. A doğrudan indirme link.
  4. 7Zip fazladan dosyaları ayıkla
  5. "7zS.sfx" dosyasını c:\Install e kopyalayın

Adım 4 - config.txt ayarlarınızı yapın

UTF-8'de kodlamanız gerektiğinden bu metin dosyasını düzenlemek için NotePad ++ kullanmanızı tavsiye ederim, aşağıdaki talimatlar notepad ++ kullanıyor.

  1. Windows Gezgini'ni kullanarak c:\Install gidin
  2. sağ tıklayın ve "Yeni Metin Dosyası" nı seçin ve config.txt olarak adlandırın
  3. sağ tıklayın ve "NotePad ++ ile Düzenle" yi seçin
  4. "Kodlama Menüsü" nü tıklayın ve "UTF-8'de Kodla" yı seçin
  5. Bunun gibi bir şey girin:

    ;[email protected]@!UTF-8!
    Title="SOFTWARE v1.0.0.0"
    BeginPrompt="Do you want to install SOFTWARE v1.0.0.0?"
    RunProgram="setup.exe"
    ;[email protected]@!
    

Bunu [SOFTWARE v1.0.0.0] ürün isminizle değiştirerek düzenleyin. Kurulum dosyası için parametreler ve seçenekler hakkında notlar burada

CheckPoint

Şimdi aşağıdaki 3 dosyayla birlikte bir "c:\Install" klasörüne sahip olmalısınız:

  1. Installer.7z
  2. 7zS.sfx
  3. config.txt

5. Adım - Arşivi oluşturun

Web’de bulduğum bu talimatlar ancak hiçbir yerde yukarıdaki 4 adımdan herhangi birini açıklamamıştır.

  1. Bir cmd penceresi açın, Pencere + R -> cmd -> enter tuşuna basın
  2. Komut penceresinde aşağıdakileri yazın

    cd \
    cd Install
    copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
    
  3. C:\Install'a bakın ve şimdi bir MyInstaller.exe'ye sahip olduğunuzu göreceksiniz

    Sen bittin

Yükleyiciyi çalıştırın

MyInstaller.exe üzerine çift tıklayın ve mesajınızla iletişime geçilecektir. Tamam'ı tıklatın, setup.exe çalışır.

Not; Otomasyon Üzerine Not

Şimdi bunun c:\Install dizininizde çalıştığına göre, bir "Install.bat" dosyası oluşturacağım ve kopya betiğini içine koyacağım.

copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe

Artık, dağıtım paketinin yeni bir sürümünü yeniden oluşturmanız gerektiğinde, Install.bat dosyasını düzenleyebilir ve çalıştırabilirsiniz.

20
jcrawfor74

Ayrıca şunu da göz önünde bulundurmalısınız: NSIS . Bununla beraber, 7-Zip'in kullandığı yöntemle sıkıştırılmış bir yükleyici oluşturabilirsiniz ( LZMA ), bu nedenle kabaca aynı boyutta olmalıdır ve yükleme üzerinde tam denetime sahip olmalısınız süreci.

7
Matthew Talbert

Jcrawfor74'ın cevabı üzerine inşa, işte bazı ek bilgiler:

7zS.sfx yerine, dosyayı da kullanabilirsiniz 7zS2.sfx . Bu çok daha küçük bir versiyondur (28 kB vs. 140 kB) ancak config.txt dosyasını desteklemiyor. Böylece kopya komutunda bırakabilirsiniz. Yalnızca küçük yapılandırma komut dosyaları oluşturmak istiyorsanız, bu daha küçük EXE dosyaları oluşturmanıza olanak sağlar.

Daha küçük olan SFX modülü hiçbir soru sormaz. Dosyaları diğer modül gibi geçici bir klasöre çıkarır ve ardından çalıştırılabilir adaylar bulur. Kaynak koduna göre (indirme sayfasında da bulunur), C\Util\SfxSetup\SfxSetup.c dosyasında, dosyaları adlarına ve uzantılarına göre farklı şekilde tartar ve ardından en yüksek puanlama dosyasını alır.

Her iki SFX modülü otomatik olarak Yönetici , en azından Windows 10'da çalışır ve bu yapılandırılamaz. Bu davranış, sistem genelindeki kurulumlar için arzu edilebilir olsa da, bu her zaman böyle olmayabilir. Ayrıca, bu karar yalnızca dosya sürüm verisine dayanmaktadır, çünkü Windows'a ne yapılacağını açıkça söyleyen hiçbir bilgi yoktur. Windows uyumluluğu dosyaya bakar ve yükseklik istemine neden olan "Kur" gibi dizeleri bulur.

Yönetici izinleri istemeyen bir SFX modülüne ihtiyacınız varsa, SFX modülünü kaynaktan yeniden oluşturabilir veya daha basit hale getirebilir, dosya sürümü bilgilerini this gibi bir kaynak düzenleyicisiyle düzenleyebilirsiniz. Sadece "Kaynak Kurulumu" sözcüğü FileDescription alanından kaldırın, söz konusu Kaynak Hacker durumunda dosyayı derleyin ve EXE dosyasını kaydedin. Bu adımı doğrudan 7zS.sfx veya 7zS2.sfx dosyasında da gerçekleştirebilir ve yükseltilmemiş SFX paketleri oluşturmak için kullanabilmeniz için bir yerde saklayabilirsiniz. Bunu, ürün adınızı veya içindeki yükü tanımlayan herhangi bir şeyi koymak için dosya sürümü bilgilerini tamamen özelleştirmek için kullanabilirsiniz.

1
ygoe