W ramach naszego procesu kompilacji muszę ustawić informacje o wersji dla wszystkich skompilowanych plików binarnych. Niektóre pliki binarne mają już informacje o wersji (dodane w czasie kompilacji), a niektóre nie.
Chcę móc zastosować następujące informacje:
- Nazwa firmy
- Informacja o prawach autorskich
- Nazwa produktu
- Opis produktu
- Wersja pliku
- Wersja Produktu
Wszystkie te atrybuty są określone w skrypcie kompilacji i muszą zostać zastosowane po kompilacji. Są to standardowe pliki binarne (nie zestawy) skompilowane za pomocą C ++ Builder 2007.
W jaki sposób mogę to zrobić?
UpdateResource
funkcji, jeśli zadanie zaktualizuj wersję w istniejącym peOdpowiedzi:
Chociaż nie jest to proces wsadowy, program Visual Studio może również dodawać / edytować zasoby plików.
Po prostu użyj Plik-> Otwórz-> Plik w .EXE lub .DLL. Jest to przydatne do poprawiania informacji o wersji po kompilacji lub dodawania ich do plików, które nie mają tych zasobów na początku.
źródło
W przeciwieństwie do wielu innych odpowiedzi, to rozwiązanie wykorzystuje całkowicie bezpłatne oprogramowanie.
Najpierw utwórz plik o nazwie
Resources.rc
takiej:Następnie użyj GoRC, aby skompilować go do
.res
pliku za pomocą:(zobacz mój komentarz poniżej dla lustra
GoRC.exe
)Następnie użyj Resource Hacker w trybie CLI, aby dodać go do istniejącego
.exe
:Otóż to!
źródło
ResourceHacker.exe -open Source.dll -save Changed.dll -action addoverwrite -resource Version.res
Również Resource Hacker można skompilować sam plik .RC:ResourceHacker.exe -open Version.rc -save Version.res -action compile
Możesz też sprawdzić darmowy program StampVer for Win32 exe / dll.
Zmieni to tylko plik i wersje produktu, jeśli mają już zasoby wersji. Nie może dodać zasobu wersji, jeśli taki nie istnieje.
źródło
rcedit jest stosunkowo nowy i działa dobrze z wiersza poleceń: https://github.com/atom/rcedit
Istnieje również moduł NPM, który otacza go z JavaScript i zadanie Grunt w przypadku, gdy używasz Grunt.
źródło
A co z czymś takim?
Dostępne tutaj z pełnymi źródłami .
źródło
/va /pv
opcji). Wersja pojawiła się poprawnie w Eksploratorze Windows, ale brakowało ostatniego znaku podczas pobierania w kodzie zVerQueryValue
. Aby naprawić zły zasób, zrobiłem to: (1) Załaduj bibliotekę DLL w Resource Hacker. (2) Wyświetl zasoby wersji. (3) Kompiluj (zmodyfikuj coś, a następnie zmień z powrotem, aby włączyć przycisk). (4) Zapisz.Jest to narzędzie ChangeVersion [1]
Lista funkcji (ze strony internetowej):
Pełne ujawnienie: znam gościa, który napisał to narzędzie, pracowałem z nim. Ale to również oznacza, że wiem, że tworzy wysokiej jakości oprogramowanie;)
[1] link nie działa. Wygląda na to, że istnieje wersja lustrzana pod adresem download.cnet.com .
źródło
"Change Version v2012.9.6.0 - (C)2007-2012 The-Software-Box.com This trial version has expired"
Robię to bez dodatkowego narzędzia. Właśnie dodałem następujące pliki do mojego projektu aplikacji Win32.
Jeden plik nagłówkowy, który definiuje niektóre stałe, których możemy ponownie użyć w naszym pliku zasobów, a nawet w kodzie programu. Musimy utrzymywać tylko jeden plik. Dzięki zespołowi Qt, który pokazał mi, jak to zrobić w projekcie Qt, teraz działa również w mojej aplikacji Win32.
---- [wersja.h] ----
---- [MyProjectVersion.rc] ----
źródło
#include <windows.h>
wresource.h
pliku, który został dodany automatycznie. Ten plik nie jest ponownie generowany (uwaga na górze pliku .rc wskazuje, że jest to wygenerowany kod i można go zmodyfikować w projektancie).Verpatch jest dobry, ale nie obsługuje znaków Unicode ...
spróbuj ResourceLib
źródło
Istnieje wiele narzędzi, o których wspomina wiele świetnych odpowiedzi, wybiorę jedno.
Resource Hacker
Pobrałem najnowszą wersję ( 5.1.7 ) z [AngusJ]: Resource Hacker . Wszystkie potrzebne informacje można znaleźć na tej stronie (opcje wiersza poleceń, skrypty, ...). W poniższym przewodniku zamierzam operować na 2 plikach wykonywalnych (szczurach laboratoryjnych), które (z oczywistych powodów) skopiowałem w moim cwd :
Zanim przejdę dalej, chciałbym wspomnieć, że ResourceHacker ma zabawne wyjście terminala , a następujące fragmenty kopiuj / wklej mogą spowodować trochę zamieszania.
1. Konfiguracja
Jest to raczej wstępny krok, aby zapoznać się ze środowiskiem, pokazać, że nie dzieje się nic dziwnego, ...
Jak widać, pliki wykonywalne są w porządku, działają dobrze, a oto jak wyglądają ich szczegóły (na których nam zależy):
2. Zasoby
Pliki zasobów to pliki tekstowe zawierające zasoby. Zasób (uproszczony) ma:
Aby uzyskać więcej informacji, zobacz [MS.Docs]: About Resource Files . Istnieje wiele narzędzi (wymienionych w istniejących odpowiedziach), które ułatwiają edycję plików zasobów, takich jak:
Ale ponieważ chodzi o Resource Hacker i:
Użyję tego w tym kroku (
-action extract
)Następnie, aby zasób mógł zostać osadzony w pliku .exe ( .dll , ...), należy go skompilować do postaci binarnej, która pasuje do formatu PE . Ponownie, istnieje wiele narzędzi, które mogą to osiągnąć, ale jak zapewne się domyślasz, pozostanę przy Resource Hacker (
-action compile
).W twoim przypadku zapisywanie i edytowanie pliku zasobów nie będzie konieczne, ponieważ plik będzie już obecny, zrobiłem to tylko w celach demonstracyjnych. Poniżej znajduje się plik zasobów po modyfikacji (a więc przed kompilacją).
sample.rc :
3. Osadź
Zostanie to również wykonane przez Resource Hacker (
-action addoverwrite
). Ponieważ pliki .exe są już skopiowane, zamierzam edytować ich zasoby w miejscu.Jak widać, musiałem zrobić małą sztuczkę ( gainarie ), ponieważ nie mogę (przynajmniej nie sądzę, żebym mógł) modyfikować .exe podczas używania.
4. Test
Jest to faza opcjonalna, aby upewnić się, że:
I ich szczegóły :
źródło
Dostępna jest konsola Resource Tuner firmy Heaventools Software.
Więcej informacji można znaleźć na stronie Zmiana zmiennych wersji i aktualizacja informacji o wersji .
źródło
Trochę późno na imprezę, ale ponieważ jej szukałem (i być może będę musiał kiedyś to znaleźć), oto co zrobiłem, aby dołączyć wersję, nazwę firmy itp. Do mojej biblioteki DLL C ++ pod VS2013 Express:
Mam nadzieję że to pomoże!
źródło
powyżej odpowiedź od @DannyBeckett bardzo mi pomogło,
Umieszczam następujący plik w pliku wsadowym i umieszczam go w tym samym folderze, w którym znajduje się ResourceHacker.exe i plik EXE, nad którym pracuję, i działa doskonale. [możesz go edytować zgodnie ze swoimi potrzebami]
[na marginesie, do skompilowania pliku res użyłem hakera zasobów, a nie GoRC]
źródło
W rzeczywistości możesz spróbować pobrać FVIE z łącza pobierania i spróbować edytować informacje dla dowolnego pliku .exe.
(LUB)
Możesz pobrać StampVer - znakowanie zasobów wersji Win32 z linku pobierania, co jest naprawdę przydatne dla plików .exe systemu Windows.
(LUB)
Możesz użyć narzędzia poleceń o nazwie RCEDIT . Pobierz z linku źródłowego Github, a następnie skompiluj za pomocą programu Visual Studio 2015, a następnie masz określone polecenia do zmiany wersji plików .exe. Zobacz link Dokumenty, aby uzyskać dostęp do różnych dostępnych poleceń.
źródło
To najlepsze narzędzie, jakie widziałem do tej pracy, umożliwia pełną kontrolę nad wszystkimi zasobami plików, w tym VersionInfo.
Zobacz: ResourceEditor autorstwa Andersa Melandera .
źródło