如何在.NET中更改引用的加载路径?

dr.*_*vil 1 .net dll reference visual-studio

我想要这样的设置:

+- /ApplicationFolder
  -- App.exe
  -- Core.dll
  -- AnotherShared.dll
  +- /PluginsFolder
    -- plugin1.dll
    -- plugin2.dll
Run Code Online (Sandbox Code Playgroud)

但是因为当我编译应用程序时,plugin1.dll引用了Core.dll和Shared.dll,所以它也会将"Copy.dll"和"Shared.dll"的副本丢弃到plugins文件夹中,如果我删除它们就不起作用更多.

我怎么解决这个问题?

Ric*_*ard 5

创建AppDomain时,您可以定义加载程序集的路径.设置AppDomainSetup.PrivateBinPath并传递给AppDomain.Create域.

使用AppDomain是插件的好主意(允许不同的CAS和卸载).

要避免VS/msbuild将引用的程序集复制到输出目录,请在引用的属性中将"Copy Local"更改为false.