C# - 在使用没有引用的依赖注入时,将dll复制到exe输出目录?

时间:2011-01-05 16:42:01

标签: c# .net visual-studio dependency-injection

我有一个C#解决方案,我使用依赖注入来解析dll之间的引用。我有一个exe项目和一些其他没有被exe引用的dll项目(它通过IoC容器使用dll)。项目设置是默认的visual studio设置,它在其自己的文件夹中构建每个dll。由于exe没有引用dll,因此它们永远不会被复制到exe的输出目录中,也不会被IoC框架找到。

你怎么处理这个?你在同一个目录中构建它们吗?使用post build copy命令?或其他什么?

3 个答案:

答案 0 :(得分:5)

我通常使用构建后复制命令(使用Build Events处理它,因此它们是自动的)将依赖程序集放入共享文件夹中。

然后我确保此文件夹包含在我的IoC容器的搜索路径中,以便找到它们。

另一个类似的选择是在主应用程序项目中使用构建事件。然后,它可以将依赖项复制到适当的文件夹中。这样做的优点是允许不同的依赖关系在同一解决方案中用于不同的应用程序,同时仍然易于维护。

答案 1 :(得分:2)

使用post build copy命令或将所有项目的输出目录更改为公共目录

答案 2 :(得分:0)

我会(并且确实)使用post build copy命令。创建一个.BAT文件,该文件生成所有必要的副本,将其附加到构建后的事件中,然后您就完成了。