Będziesz potrzebować następujących narzędzi do tworzenia złożeń.
- resgen.exe
- al.exe
- ildasm.exe
al.exe jest program, który osadza zasoby w zespole satelitarną. Ale al.exe akceptuje tylko zasoby w formacie binarnym .resources. Ale nasze dane wejściowe są zwykle plikami zasobów tekstowych lub plikami zasobów XML w formacie .resx. Plik resgen.exe służy do konwersji tych alternatywnych form zasobów do formatu binarnego .resources, który jest smaczny na al.exe.
ildasm.exe: Jeśli pamiętasz, co robi Visual Studio IDE, zobaczysz, że istnieje translacja nazwy między strukturą katalogu plików zasobów i sposobem, w jaki ten plik zasobów jest znany wewnątrz zespołu. Becaue używamy Visual Studio IDE do generowania domyślnych zasobów i procesu rozszerzenia do generowania zespołów satelitów, oba mechanizmy muszą produkować złoŜenia o tym samym rodzaju hierarchii nazewnictwa dla plików zasobów.
Używamy ildasm do sprawdzenia bibliotek DLL, które generuje IDE Visual Studio, aby dowiedzieć się, jaka jest struktura, i używać tego samego mechanizmu do generowania zestawów satelitarnych. Możesz również zbadać złożenia satelitarne za pomocą ildazmu, aby upewnić się, że nazwy są poprawne. Przydaje się to do usuwania błędów z menedżera zasobów informujących, że nie może zlokalizować zasobu.
Teraz, gdy opisane są narzędzia, w jaki sposób możemy przekonwertować zewnętrzny plik zasobów na zespół satelity? Jak wspomniano poniżej, jest to proces trzech (naprawdę, dwóch) kroków.
Krok 0: Określ ścieżkę do resgen i al.exe:
@set path=%path%;
"C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin";
c:\winnt\microsoft.NET\framework\v1.0.3705
Krok 1: Użyj resgen utworzyć plik .resources od A .resx pliku.
Resgen MyText.resx
Powyższe polecenie utworzy plik o nazwie:
MyText.resources
Krok 2: Użycie al.exe stworzyć zespół Satelita:
Al.exe
/t:lib
/embed:MyText.en-gb.Resources,MyApplication.MyText.en-gb.Resources
/culture:hi-gb
/out:MyApplication.resources.dll
Istnieje kilka rzeczy, które warto tutaj:
/t:lib: Says you are interested in a .dll.
/embed:MyText.en-gb.Resources,MyApplication.MyText.en-gb.Resources : Embeds and renames the resource to a target name to match the Visual Studio IDE naming structure.
/culture:hi-gb : Identifies the culture in which you are interested.
/out:MyApplication.resources.dll : Name of the DLL in which you are interested.
Wygenerowany plik .dll musi mieć taką konwencję nazewnictwa dla .NET, aby ją znaleźć. Zauważ także, że musisz określić ustawienie kultury, nawet jeśli kultura jest dostępna w nazwach plików zasobów. Tak więc należy o tym wspomnieć w obu miejscach.
Umieść zespół satelitarna w odpowiednim katalogu Po utworzeniu montaż satelitarna, fizycznie skopiować .dll do następującego katalogu:
\MyApplication\bin\en-gb\MyApplication.Resources.DLL
W przypadku wielu plików zasobów:
\MyApplication\resources\files\CommonResources.resx
\MyApplication\resources\files\Module1Resources.resx
\MyApplication\resources\files\Module2Resources.resx
Można również zdefiniować klucze dla tych zasobów w oddzielnej hierarchii, w następujący sposób:
\MyApplication\resources\keys\CommonKeys.cs
\MyApplication\resources\keysModule1Keys.cs
\MyApplication\resources\keys\Module2Keys.cs
Dla skryptu programu partii, proszę odwołać się do mojego bloga http://samithenerd.blogspot.com/2011/12/batch-program-for-creating-satellite.html
Sprawdzę to w wolnym czasie wznawiają twoje wysiłki, aby dzielić się;) –
Możesz także zaakceptować swoją odpowiedź, jeśli uważasz, że tak naprawdę było po tobie. –