2012-02-27 28 views
6

Làm thế nào để bạn giải quyết thông báo lỗi giống như thế này?F # tương tác, hạn chế API về tham chiếu dll

`Binding session to 'C:\Program Files (x86)\NLog\.NET Framework 4.0\NLog.dll'... 

error FS0193: API restriction: The assembly 
'file:///C:\Program Files (x86)\NLog\.NET Framework 4.0\NLog.dll' has 
already loaded from a different location. It cannot be loaded from a 
new location within the same appdomain. 

Mã kích hoạt nó, có thể trông như thế này:

#r @"..\packages\NLog.2.0.0.2000\lib\net20\NLog.dll" 
NLog.Config.SimpleConfigurator.ConfigureForConsoleLogging() 

Trả lời

8

Dường như FSI sẽ không tải từ DLL cho khác hơn là theo tên, vì vậy đây sẽ sắp xếp các vấn đề ra:

#I @"..\packages\NLog.2.0.0.2000\lib\net20" 
#r @"NLog.dll" 
NLog.Config.SimpleConfigurator.ConfigureForConsoleLogging() 

#I nghĩa để thêm thư mục đó vào tải đường

#r có nghĩa là để tham chiếu bởi dll-path; tập trung vào tên. Điều này có nghĩa là FSI sẽ sử dụng tên tệp trước, tìm trong đường dẫn tìm kiếm trên toàn hệ thống và chỉ sau đó thử sử dụng chuỗi sau #r làm gợi ý liên quan đến thư mục.

Vì vậy, bằng cách thực hiện theo cách này, bạn thực hiện tải NLog từ thư mục được chỉ định của bạn thay vì thư mục trên toàn hệ thống.

+2

Tôi đang thêm câu trả lời ở đây, bởi vì tôi không thể tìm thấy câu trả lời trong khi googling, tải lại tương tác không giúp đỡ và tôi phải đoán cách trả lời (đã hoạt động). Vì vậy, google, đây là một số thức ăn gia súc. – Henrik

Các vấn đề liên quan