如何在Visual Studio中编译时将DLL保存在不同的文件夹中?

Osc*_*ros 30 c# assemblies projects-and-solutions visual-studio

假设我有一个Window Forms/Console Application C#项目,其中包含一些外部引用和对同一解决方案中其他类库项目的引用.

当我构建Window Form项目时,我希望引用的库存储在不同的位置(例如:bin\Release\Libraries),而不是与.exe相同的文件夹.

有可能吗?

Ale*_*kov 16

您的问题分为两部分:

如何配置解决方案以将程序集/ EXE构建到您选择的文件夹中 - 这是通过VS中项目的属性(项目属性 - >构建 - >输出路径)进行配置的.还要检查每个引用上的"复制本地"属性的值.

如何从非默认位置(即从...\Libraries文件夹)加载程序集文件 - 您需要更改app.config文件以将此非默认路径添加到程序集搜索位置(http://支持.microsoft.com/kb/837908).

  • 继这个答案的第二部分之后,还要看一下`<Probing>``.config`元素 - 它允许你指定其他(子)目录来搜索程序集 (4认同)

aer*_*hov 7

前面给出了正确的答案.我只想提一下这个名为PrettyBin的nuget包.

在启动项目上安装它.DLL和XML将转到lib文件夹,如果你不自定义,你将有一个工作示例,说明它是如何完成的.