2014-03-26 35 views
0

加載我有以下簡單的文件夾結構:的依賴不會被從項目文件夾,但是從可執行文件夾

根\ Executable.exe

根\子文件夾

Root \ Subfolder \ Control.dll

Root \ Subfolder \ ControlDependency.dll

子文件夾有一個基於第三方庫的控件。我期望控件從它自己的文件夾加載它的依賴關係,但它正在尋找可執行文件夾中的依賴關係。

這是正常的,它爲什麼會發生?

回答

1

生成項目時,所有引用的程序集將被複制到輸出文件夾中,然後被引用。 的.NET CLR遵循這些步驟來組裝解決:

  • 檢查配置文件
  • 檢查先前引用的程序
  • 檢查全局程序集緩存
  • 通過代碼庫找到大會或探測

如果您需要在運行時加載一個程序集,該程序集可以位於任何文件夾(不僅是應用程序的bin文件夾)中,您可以使用t HESE三種方法:

  • 安裝組件放入全局程序集緩存(GAC)
  • 使用應用程序配置(的.config)與 標籤文件。
  • 使用AssemblyResolve事件

請按照此鏈接瞭解詳情:

相關問題