Bạn sẽ cần các công cụ sau để tạo hội đồng.
- resgen.exe
- al.exe
- Ildasm.exe
al.exe là chương trình nhúng nguồn lực vào một lắp ráp vệ tinh. Nhưng al.exe sẽ chỉ chấp nhận tài nguyên ở định dạng nhị phân .resources. Nhưng đầu vào của chúng tôi thường là tệp tài nguyên văn bản thuần túy hoặc tệp tài nguyên dựa trên XML ở định dạng .resx. resgen.exe được sử dụng để chuyển đổi các dạng tài nguyên thay thế này thành định dạng nhị phân .resources có thể thích thú với al.exe.
ildasm.exe: Nếu bạn nhớ Visual Studio IDE đang làm gì, bạn sẽ thấy rằng có một bản dịch tên giữa cấu trúc thư mục tệp tài nguyên của bạn và cách tệp tài nguyên đó được biết bên trong assembly. Becaue chúng ta đang sử dụng Visual Studio IDE để tạo các tài nguyên mặc định và quá trình mở rộng để tạo ra các hội đồng vệ tinh, cả hai cơ chế phải tạo ra các assembly với cùng một loại phân cấp đặt tên cho các tệp tài nguyên.
Vì vậy, chúng tôi sử dụng ildasm để kiểm tra các DLL mà Visual Studio IDE tạo ra để tìm hiểu cấu trúc là gì và sử dụng cùng một cơ chế để tạo các cụm vệ tinh. Bạn cũng có thể kiểm tra các hội đồng vệ tinh sử dụng ildasm để đảm bảo rằng bạn có được tên đúng. Điều này sẽ hữu ích cho việc gỡ lỗi từ trình quản lý tài nguyên cho bạn biết rằng nó không thể định vị một tài nguyên.
Bây giờ các công cụ được vạch ra, làm cách nào để chuyển đổi tệp tài nguyên bên ngoài thành một cụm vệ tinh? Như đã lưu ý dưới đây, đây là một quá trình ba bước (thực sự, hai).
Bước 0: Đặt đường dẫn của bạn cho resgen và al.exe:
@set path=%path%;
"C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin";
c:\winnt\microsoft.NET\framework\v1.0.3705
Bước 1: Sử dụng resgen để tạo ra một tập tin .resources từ một file resx.
Resgen MyText.resx
Lệnh trên sẽ tạo ra một tập tin gọi là:
MyText.resources
Bước 2: Sử dụng al.exe để tạo lắp ráp vệ tinh:
Al.exe
/t:lib
/embed:MyText.en-gb.Resources,MyApplication.MyText.en-gb.Resources
/culture:hi-gb
/out:MyApplication.resources.dll
Có một vài điều đáng lưu ý ở đây:
/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.
Dll được tạo ra phải có quy ước đặt tên cho .NET để tìm nó. Cũng lưu ý rằng bạn phải chỉ định cài đặt văn hóa, mặc dù văn hóa có sẵn trong tên của các tệp tài nguyên. Vì vậy, nó đã được đề cập ở cả hai nơi.
Đặt hội vệ tinh trong phù hợp mục Khi lắp ráp vệ tinh được tạo ra, chất copy .dll vào thư mục sau:
\MyApplication\bin\en-gb\MyApplication.Resources.DLL
Trong trường hợp nhiều file nguồn:
\MyApplication\resources\files\CommonResources.resx
\MyApplication\resources\files\Module1Resources.resx
\MyApplication\resources\files\Module2Resources.resx
Và bạn có thể xác định các khóa cho các tài nguyên này trong một hệ thống phân cấp riêng biệt, như sau:
\MyApplication\resources\keys\CommonKeys.cs
\MyApplication\resources\keysModule1Keys.cs
\MyApplication\resources\keys\Module2Keys.cs
Đối với một kịch bản chương trình lô, vui lòng tham khảo blog của tôi http://samithenerd.blogspot.com/2011/12/batch-program-for-creating-satellite.html
Tôi sẽ kiểm tra trong thời gian rảnh, upvoted nỗ lực của bạn để chia sẻ;) –
Ngoài ra bạn có thể chấp nhận câu trả lời của bạn là tốt nếu bạn nghĩ rằng đây là những gì bạn đã thực sự sau. –