我正在編寫一個包含其他庫的C#庫 - 項目。這個庫應該存儲在一個子文件夾「lib」中。從庫項目中的子文件夾引用dll文件
假設我的項目名爲mylib,其他庫稱爲extralib。比目錄如下:
lib/extralib1.dll
lib/extralib2.dll
...
mylib.dll
我現在寫了一個C#-console-應用: 我打電話從一中是指mylib.dll功能,從extralibs調用的函數。一切工作正常,當我使用一個app.config文件是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
...
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="lib"/>
</assemblyBinding>
</runtime>
</configuration>
但問題是,當我使用中是指mylib.dll例如MATLAB軟件對extralibs的引用不起作用。唯一的工作,當我將它們全部保存在同一個文件夾中時。這就是我不想做的事情。
所以重點是將lib添加到控制檯應用程序中的私有路徑不是一個好的解決方案!我必須將額外的庫添加到mylib.dll中的私有路徑。
你有一個想法如何做到這一點?或者,有沒有更好的方法來解決這個問題?
我發現這個函數:'AppDomain.CurrentDomain.SetupInformation.PrivateBinPath =「lib」;'但我不想知道mylib.dll中首先調用哪個函數,我不想在每個函數中添加它 – morgelo
你的配置文件根本沒有被使用,CLR試圖找到matlab.exe.config。爲可能使用許多其他需要修改配置文件的插件編寫配置文件是不明智的。沒有人關心這些DLL在一個目錄中,只有你。 –