Visual studio Visual Studio:用于发布的DLL位置
我有一个项目,我正在工作,它引用了一个“公共库(DLL)”。在DevEnv中,它可以正常工作,但是如果我构建并尝试组织我的文件,它就无法工作。基本上,如果我有这样的设置:Visual studio Visual Studio:用于发布的DLL位置,visual-studio,dll,release,Visual Studio,Dll,Release,我有一个项目,我正在工作,它引用了一个“公共库(DLL)”。在DevEnv中,它可以正常工作,但是如果我构建并尝试组织我的文件,它就无法工作。基本上,如果我有这样的设置: C:\Program Files\MyApp\MyApp.exe C:\ProgramFiles\MyApp\Common\WPF Commons.dll C:\ProgramFiles\MyApp\Modules\SomeModule.dll 等 MyApp.exe不工作。它尝试仅在当前目录中查找DLL文件。那么,如何在
- C:\Program Files\MyApp\MyApp.exe
- C:\ProgramFiles\MyApp\Common\WPF Commons.dll
- C:\ProgramFiles\MyApp\Modules\SomeModule.dll
- 等
哦,我意识到它在Dev中可以工作,因为所有DLL都放在同一个文件夹中。不过,我不想在发行版中这样做:-/您需要做的是在应用程序配置文件中添加一个私有探测路径。这将告诉CLR在哪些目录中查找额外的程序集
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Common;Modules"/>
</assemblyBinding>
</runtime>
</configuration>
除了复制MyApp.exe.config文件(可以在事后轻松打开和编辑)之外,还有其他解决方案吗?@myermian您可以覆盖程序集解析事件来执行自定义解析。但就我个人而言,我会选择app.config。app.config将在事后进行编辑,以允许管理员清理绑定和部署问题。使用它来探测路径是标准的做法(VisualStudio实际上就是这样做的)。