2010-05-22 11 views
7

Cała historia: Stworzyłem fantazyjny program .NET, który ma instalator stworzony przez Visual Studio Installer (VSI). VSI tworzy 2 pliki (setup.exe i MyProgramSetup.msi). Rozumiem powody, dla których oba pliki są potrzebne, ale chcę tylko rozpowszechniać POJEDYNCZY instalator do użytkowników. Nie chcę, aby widzieli 2 pliki i musieli wybierać między nimi.Jak mogę edytować zasoby exe (Opis pliku, Ikona itp.) Za pomocą narzędzia wiersza poleceń?

W tym celu połączyłem 2 pliki w samorozpakowujące się archiwum za pomocą IExpress (jak widać w tej odpowiedzi: Merge msi and exe). Działa to dobrze, ale tworzone samo-rozpakowujące się archiwum ma brzydką ikonę i mylące informacje o pliku (opis pliku to "Samorozpakowacz Win32" z 43 spacji po nim).

Muszę zamienić ikonę na moją niestandardową i zmienić niektóre właściwości pliku, takie jak "Opis", "Firma" itp. Chciałbym, aby to zostało automatycznie wykonane jako krok kompilacji, więc mając program, który jest narzędzie wiersza poleceń/konsoli byłoby świetne.

Szukałem już od pewnego czasu i mogę znaleźć tylko jeden program, który robi dokładnie to, co chcę (ResourceTuner Console: http://www.heaventools.com/command-line_resource_editor.htm), ale kosztuje ramię i nogę, a mój budżet wynosi 0 USD.

Czy ktoś wie lepszy sposób, aby osiągnąć to, co chcę, lub znać program, który może zastąpić zasoby wykonywalne bez konieczności korzystania z GUI?

Nawiasem mówiąc, Próbowałem również SiComponents' Zasobów Builder 3, które nie mogą nawet otworzyć plik wykonywalny, a ResEdit które po prostu zawiesza się podczas I wykonać polecenie:

resedit.exe -convert "Modified Resources.rc" "MyProgramSetup.exe" 

Odpowiedz

5

Visual Studio można edytować je, jeśli otwierasz plik wykonywalny. Nie jestem pewien, czy istnieje sposób, aby to zrobić z linii poleceń.

Istnieje przyzwoity CodeProject article, który zajmuje się ikony (w tym zapisywanie ich w plikach exe).

Nazwa firmy, opis itp. Są częścią zasobu Wersja. Kolejne CodeProject article dotyczy aktualizacji zasobu wersji, ale nie zagłębiłem się w to dogłębnie.

+3

Twój drugi link (VerPatch) był idealny do zmiany zasobów wersji. Open source i tylko 93 KB, znakomicie! Użyłem następującego polecenia: verpatch.exe "Blah Setup.exe "/ s CompanyName" Blah "/ s FileDescription" Blah "/ s InternalName" Blah "/ s LegalCopyright" Blah "/ s OriginalFilename" Bla " – Coder7862396

3

Czy spojrzałeś na "hackera zasobów" Aka "Reshacker"? Jest promowany głównie jako narzędzie GUI, ale plik pomocy mówi, że dostęp do wszystkich jego funkcji można uzyskać za pomocą skryptów wiersza poleceń. Użyłem jej gui do zmiany ikon wewnątrz exe, a to pozwoli ci na inne zasoby osadzone. Wystarczy google dla "hakera zasobów", obecna wersja wygląda na 3.4.0

+1

Udało mi się użyć narzędzia Resourse Hacker do zastąpienia głównej ikony za pomocą następującego polecenia: ResHacker.exe -addoverwrite "Blah Setup.exe", "Blah Setup.exe", "ProgramIcon.ico", ICONGROUP, MAINICON, 0 – Coder7862396

2

Odpowiadając na pytanie dotyczące wersji pliku, możesz dołączyć własne informacje o wersji do pliku .SED przeglądarki IExpress. Ta site zawiera dodatkowe szczegóły dotyczące sekcji plików iSE. Korzystanie z wbudowanej funkcjonalności wydaje się łatwiejsze niż przetwarzanie po zakończeniu instalacji exe.

Zasadniczo w pliku .SED należy uwzględnić odniesienie VersionInfo w sekcji Opcje. Następnie utwórz sekcję zawierającą informacje o wersji.

[Options] 
VersionInfo=VersionSection 

[VersionSection] 
FromFile= ;Uses the version info in this executable file 
; or specify each attribute 
; or specify the FromFile and override individual attributes 
FileDescription= 
CompanyName= 
FileVersion= 
ProductVersion= 
OriginalFilename= 
LegalCopyright= 
ProductName= 
InternalName= 

BTW, FileVersion nie działa dla mnie. YMMV,

+0

Edytuję pliki sed takie jak to i Zapisane zmiany, ale zmodyfikowane szczegóły nie są odzwierciedlone na Ostatni egzemplarz: Muszę również udostępnić plik sed wraz z plikiem EXE, aby zobaczyć zmiany? –

+0

@JMat Czy dodałeś plik .SED do projektu wdrożenia? Plik .SED jest używany tylko podczas etapie kompilacji, nie ma potrzeby dostarczania tego pliku –

+0

Plik .sed jest generowany przez kreator IExpres dla mnie wraz z plikiem exe, więc tak jak musimy edytować plik sed po wygenerowaniu exe lub czy robię to w zły orde r? Obecnie kroki, które robię, to 1. generowanie pliku exe i sed przy użyciu narzędzia Iexpress i edycja pliku sed zgodnie z odpowiedzią wymienioną powyżej i zapisanie zmian. Ale edycja plików sed nie odzwierciedla pliku exe. Moje pytanie http://stackoverflow.com/questions/28313804/edit-fileinfo-of-exe-created-using-iexpress-by-modifying-sed-file –

Powiązane problemy