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.
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.
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.
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.
Bunu kolaylaştırmak için bir klasör oluşturun: c:\Install. Gerekli tüm dosyaları kopyalayacağımız yer burasıdır.
7z-Extra'yı indirmeniz gerekiyor.
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.
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
Şimdi aşağıdaki 3 dosyayla birlikte bir "c:\Install" klasörüne sahip olmalısınız:
Web’de bulduğum bu talimatlar ancak hiçbir yerde yukarıdaki 4 adımdan herhangi birini açıklamamıştır.
Komut penceresinde aşağıdakileri yazın
cd \
cd Install
copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
C:\Install'a bakın ve şimdi bir MyInstaller.exe'ye sahip olduğunuzu göreceksiniz
Sen bittinMyInstaller.exe üzerine çift tıklayın ve mesajınızla iletişime geçilecektir. Tamam'ı tıklatın, setup.exe çalışır.
Ş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.
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.