设置解决方案中其他项目中引用的dll类库的位置
本文关键字:dll 类库 位置 项目 解决方案 其他 设置 引用 | 更新日期: 2023-09-27 18:20:10
我正在做一个有3个项目(c#)的解决方案。
- 主要可执行项目
- Dll
- Dll
主要项目参考了其他项目。我想在我的主要项目中有以下文件结构:
main.exe
Libraries - folder
+ 2.dll
+ 3.dll
但不幸的是,VS正在将这些DLL文件放到EXE位置。
有什么简单的解决方案吗?
您可以更改子DLL上的输出路径以指向库。
但是,这不是.Net在运行时为DLL解析而探测的标准路径,因此在尝试部署它时可能会遇到问题,除非您手动从这些位置加载。
如果您将项目引用标记为Copy Local,那么我认为您无法通过配置更改Visual Studio将文件复制到的目录。
但是,您可以设置一个生成后命令,在每次生成后自动将文件移动到所需的子目录中。
更新
我喜欢这个网站,因为它让我每天都能学到新东西。作为一个恰当的例子,我刚刚发现了可以添加到配置文件中的探测元素,以便向标准探测路径添加额外的路径。
此配置元素允许.Net在libraries
文件夹中搜索要加载的DLL,这样,一旦DLL就位,您就不必做任何额外的工作(您仍然需要使用postbuild命令将它们移动到该目录)。
这里有一个示例配置条目来支持您的配置:
<configuration>
<runtime>
<assemblyBinding>
<probing privatePath="bin'libraries"/>
</assemblyBinding>
</runtime>
</configuration>
我也有同样的问题,但前面的例子不起作用。只有在我指出方案后,一切都很好:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Libraries"/>
</assemblyBinding>
</runtime>
</configuration>