48
Chương 1: Phát triển ứng dụng
▪
Nếu cặp khóa nằm trong một kho chứa khóa CSP, áp dụng đặc tính
System.Reflection.AssemblyKeyNameAttribute
cho assembly và chỉ định tên của
kho chứa khóa.
Ngoài ra, bạn có thể tùy chọn:
•
Áp dụng đặc tính
System.Reflection.AssemblyCultureAttribute
cho assembly để chỉ
định thông tin bản địa mà assembly hỗ trợ (Bạn không thể chỉ định bản địa cho các
assembly thực thi vì assembly thực thi chỉ hỗ trợ bản địa trung lập).
•
Áp dụng đặc tính
System.Reflection.AssemblyVersionAttribute
cho assembly để chỉ
định phiên bản của assembly.
Đoạn mã dưới đây (trong file HelloWorld.cs) minh họa cách sử dụng các đặc tính (phần in
đậm) để chỉ định khóa, bản địa, và phiên bản cho assembly:
using System;
using System.Reflection;
[assembly:AssemblyKeyName("MyKeys")]
[assembly:AssemblyCulture("")]
[assembly:AssemblyVersion("1.0.0.0")]
public class HelloWorld {
public static void Main() {
Console.WriteLine("Hello, world");
}
}
Để tạo một assembly tên mạnh từ đoạn mã trên, tạo các khóa tên mạnh và lưu trữ chúng trong
file MyKeyFile bằng lệnh
sn -k MyKeyFile.snk
. Sau đó, sử dụng lệnh
sn -i MyKeyFile.snk
MyKeys
để cài đặt các khóa vào một kho chứa khóa CSP có tên là MyKeys. Cuối cùng, sử dụng
lệnh
csc HelloWorld.cs
để biên dịch file HelloWorld.cs thành một assembly tên mạnh.
Bạn cũng có thể sử dụng công cụ Assembly Linker (al.exe) để tạo assembly tên
mạnh, cách này cho phép chỉ định các thông tin tên mạnh trên dòng lệnh thay vì
sử dụng các đặc tính trong mã nguồn. Cách này hữu ích khi bạn không muốn
nhúng các đặc tính tên mạnh vào file nguồn và khi bạn sử dụng kịch bản để xây
dựng những cây mã nguồn đồ sộ. Xem thêm thông tin về Assembly Linker trong
tài liệu .NET Framework SDK.