使用“复制本地”将程序集放置在不同的目录中

本文关键字:复制本 复制本地 程序集 使用 | 更新日期: 2023-09-27 18:00:20

我目前正在Visual Studio 2010中处理一个C#项目,需要使用一个程序集。我将它作为一个项目添加到我的解决方案中,并将其构建并复制到我的主项目的输出文件夹中。

问题是,为了整洁起见,我希望将它放在bin/Debug/assemblys中,而不是bin/Debug中,并且该程序集的引用使用它。

这有可能吗?

使用“复制本地”将程序集放置在不同的目录中

这种"整洁"是一个非常糟糕的主意。CLR不知道在哪里查找这些程序集,如果没有app.exe.config文件,就找不到它们。您需要提供一个带有<probing>元素的子目录。您还需要一个生成后事件来创建目录,使用mkdir和xcopy来复制文件。

如果这听起来太多的困难,那是因为DLL地狱是你永远不想惹的麻烦。CLR和生成系统都强烈反对它。CLR认为只有两个地方是明确的,即GAC和包含启动EXE的目录。任何其他事情都需要额外的步骤来说服CLR你不是意外开枪。

只需在项目属性中将输出路径设置为bin''Debug''assembly或任何您喜欢的路径。