40
Chương 1: Phát triển ứng dụng
Để tạo một thư viện từ nhiều file mã nguồn, liệt kê tên các file này ở cuối dòng lệnh. Bạn có
thể sử dụng đối số
/out
để chỉ định tên thư viện, nếu không, tên thư viện được đặt theo tên
của file mã nguồn đầu tiên. Ví dụ, để tạo thư viện MyFirstLibrary.dll từ hai file mã nguồn
ConsoleUtils.cs và WindowsUtils.cs, sử dụng lệnh:
csc /out:MyFirstLibrary.dll /target:library
ConsoleUtils.cs WindowsUtils.cs
Trước khi phân phối thư viện cho người khác sử dụng, bạn nên tạo tên mạnh (strong-name) để
không ai có thể chỉnh sửa assembly của bạn. Việc đặt tên mạnh cho thư viện còn cho phép
người khác cài đặt nó vào Global Assembly Cache, giúp việc tái sử dụng dễ dàng hơn (xem
mục 1.9 về cách đặt tên mạnh cho thư viện của bạn và mục 1.14 về cách cài đặt một thư viện
có tên mạnh vào Global Assembly Cache). Ngoài ra, bạn có thể đánh dấu thư viện của bạn với
chữ ký Authenticode để người dùng biết bạn là tác giả của thư viện (xem mục 1.12 về cách
đánh dấu thư viện với Authenticode).
Để biên dịch một assembly có sử dụng các kiểu được khai báo trong các thư viện khác, bạn
phải báo cho trình biên dịch biết cần tham chiếu đến thư viện nào bằng đối số
/reference
. Ví
dụ, để biên dịch file HelloWorld.cs (trong mục 1.1) trong trường hợp lớp
ConsoleUtils
nằm
trong thư viện ConsoleUtils.dll, sử dụng lệnh:
csc /reference:ConsoleUtils.dll HelloWorld.cs
Bạn cần chú ý ba điểm sau:
•
Nếu tham chiếu nhiều hơn một thư viện, bạn cần phân cách tên các thư viện bằng dấu
phẩy hoặc chấm phẩy, nhưng không sử dụng khoảng trắng. Ví dụ:
/reference:ConsoleUtils.dll,WindowsUtils.dll
•
Nếu thư viện không nằm cùng thư mục với file mã nguồn, bạn cần sử dụng đối số
/lib
để chỉ định thư mục chứa thư viện. Ví dụ:
/lib:c:\CommonLibraries,c:\Dev\ThirdPartyLibs
•
Nếu thư viện cần tham chiếu là một assembly gồm nhiều file, bạn cần tham chiếu file
có chứa manifest (xem thông tin về assembly gồm nhiều file trong mục 1.3).
5.
5.
Truy xu t các đ i s dòng l nh
ấ
ố ố
ệ
Truy xu t các đ i s dòng l nh
ấ
ố ố
ệ
Bạn cần truy xuất các đối số được chỉ định trên dòng lệnh khi thực thi ứng dụng.
Sử dụng một dạng của phương thức
Main
, trong đó nhận đối số dòng lệnh dưới
dạng một mảng chuỗi. Ngoài ra, có thể truy xuất đối số dòng lệnh từ bất cứ đâu
trong mã nguồn của bạn bằng các thành viên tĩnh của lớp
System.Environment
.
Khai báo phương thức
Main
thuộc một trong các dạng sau để truy xuất đối số dòng lệnh dưới
dạng một mảng chuỗi:
•
public static void Main(string[] args) {}