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

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

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

有可能吗?

您的问题分为两部分:

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

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

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

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

在项目peoperties中设置参考路径。

您还可以通过在项目peoperties中指定输出路径来指定编译的exe的位置。

您可以在此处找到组织项目参考的最佳实践: http : //codebetter.com/patricksmacchia/2009/01/11/lessons-learned-from-the-nunit-code-base/

查看章节“VisualStudio项目参考+复制本地真实选项是邪恶的!”

是的,有可能,你可以在你的msbuild脚本中完成它。 虽然我不能给你一个确切的答案,但请看这个问题在SO上使用msbuild复制所有文件和文件夹