CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 51

51

Chương 1: Phát triển ứng dụng

[assembly:AssemblyDelaySign(true)]

public class HelloWorld {

public static void Main() {

Console.WriteLine("Hello, world");

}

}

Khi cố nạp một assembly bị hoãn ký, bộ thực thi sẽ nhận ra assembly này có tên mạnh và cố
xác minh assembly (như được thảo luận trong mục 1.10). Nhưng vì không có chữ ký số nên
bạn phải vô hiệu chức năng xác minh này bằng lệnh

sn -Vr HelloWorld.exe

.

Khi quá trình phát triển hoàn tất, bạn cần ký lại assembly để hoàn thành tên mạnh cho
assembly. Công cụ Strong Name cho phép thực hiện điều này mà không cần thay đổi mã
nguồn hoặc biên dịch lại assembly, tuy nhiên, bạn phải có quyền truy xuất khóa riêng của cặp
khóa tên mạnh. Để ký lại assembly có tên là HelloWorld.exe với cặp khóa nằm trong file
MyKeys.snk, sử dụng lệnh

sn -R HelloWorld.exe MyKeys.snk

. Nếu cặp khóa được lưu trữ

trong một kho chứa khóa CSP có tên là MyKeys, sử dụng lệnh

sn -Rc HelloWorld.exe

MyKeys

.

Sau khi đã ký lại assembly, bạn phải mở chức năng xác minh tên mạnh cho assembly bằng đối
số

-Vu

của công cụ Strong Name, ví dụ

sn -Vu HelloWorld.exe

. Để kích hoạt lại việc xác

minh tên mạnh cho tất cả các assembly đã bị bạn vô hiệu trước đó, sử dụng lệnh

sn –Vx

. Sử

dụng lệnh

sn -Vl

để xem danh sách các assembly đã bị vô hiệu chức năng này.

Khi sử dụng assembly ký sau, bạn nên so sánh các lần xây dựng khác nhau của
assembly để bảo đảm chúng chỉ khác nhau ở chữ ký. Điều này chỉ có thể thực
hiện được nếu assembly đã được ký lại bằng đối số

-R

của công cụ Strong Name.

Sử dụng lệnh

sn -D assembly1 assembly2

để so sánh hai assembly.

Hình 1.3 Tạm hoãn việc ký assembly

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.