2013-03-20 65 views
1

我寫了databases.dll並引用了2個dll內部。(C#)dll內部引用dll

Npgsql.dll and MySql.Data.dll 

我編譯我的項目在命令行databases.dll這樣的:

csc.exe /target:library /r:Npgsql.dll,MySql.Data.dll /out:databases.dll PostgreSql.cs MySql.cs 

databases.dll沒有問題的編譯。

當我想測試它創建新項目和參考database.dll時出現問題。 程序正在編譯,但是當它嘗試使用dll代碼時,它會帶來錯誤:TypeInitializationException was unhandled

我試圖將這兩個dll複製到編譯目標所在的目錄。

我想問一下,如果有可能的:

  1. 創建引用到其他DLL的DLL。

  2. 爲沒有引用dll的最終用戶提供dll,並要求他們這樣做,如果他們想要使用dll的每個部分。所以當編碼員想要使用MySql時,他必須提供MySql.dll來編譯。

我希望我自己清楚原因我的英語是不完美的;)

+0

應該有一個TypeInitializationException的內部異常。檢查一下;它可能會讓您更深入地瞭解問題。 – 2013-03-20 18:14:08

回答

0

由於Npgsql.dllMySql.Data.dll都依賴的DLL,它們都需要由您的項目,以引用它來編譯。

+0

我引用他們兩個「複製本地」 – gemGreg 2013-03-20 12:52:36