Tôi đang cố gắng thực hiện chương trình c#
đơn giản bằng cách sử dụng Growl C# API
.csc.exe tham chiếu tập tin .dll bên ngoài
tôi đã cố gắng để biên dịch chương trình của tôi theo hai cách khác nhau:
1) tôi vẫn tiếp tục tập .dll
của tôi trong cùng thư mục với tập tin .cs
tôi. Than tôi chạy
csc /r:Growl.Connector.dll,Growl.CoreLibrary.dll /out:test.exe *.cs
Nó biên soạn tốt và cũng chạy tốt.
2) Bây giờ tôi đã tạo ra một thư mục bên trong thư mục làm việc hiện tại của tôi tên là growl
và giữ tất cả các tài liệu tham khảo .dll
của tôi ở đó.
Bây giờ khi tôi cố gắng biên dịch nó bằng cách sử dụng lệnh dưới đây
csc /r:"D:\Modified\Growl_NET_Connector_SDK\libraries\growl\Growl.Connector.dll","D:
\Modified\Growl_NET_Connector_SDK\libraries\growl\Growl.CoreLibrary.dll" /out:test.exe *.cs
Nó được biên soạn tốt nhưng khi tôi cố gắng chạy nó ngoại trừ dưới đây đề cập xảy ra.
Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'Growl.Connector, Version=2.0.0.0, Culture=n
eutral, PublicKeyToken=980c2339411be384' or one of its dependencies. The system cannot find the file specified.
at GrowlNotification.Program.Main(String[] args)
Vì vậy, câu hỏi của tôi là cách đúng để tham chiếu .dll
tập tin trong csc
khi tập tin nằm trong một thư mục bên ngoài là gì.
Đây là directory structure cho trường hợp thứ 2.
Vì vậy, không có cách nào tôi có thể giữ tệp '.dll' trong một thư mục bên ngoài và chạy' .exe' của mình chỉ bằng cách 'bấm đúp vào' nó. Như tôi hiểu từ câu trả lời của bạn rằng tập tin '.dll' sẽ có mặt trong cùng một thư mục với .exe tại thời gian chạy. – RanRag
@Noob: Tôi tin rằng nó có thể nằm trong thư mục con * nếu bạn thêm tệp app.config để chỉ định thăm dò đường dẫn bin riêng tư, nhưng điều đó chỉ thêm sự phức tạp hơn nữa. Đó là tất cả * nhiều * đơn giản nếu mọi thứ trong cùng một thư mục. –
Cảm ơn thông tin. – RanRag