【发布时间】:2015-02-20 10:49:16
【问题描述】:
我有一个项目 (A) 将开发一个记录器系统。该项目将用于其他项目。在项目 A 中,有两个引用在编译时没有使用。
当我在任何项目中添加对项目 A 的引用时,不会导入这些引用,但我在运行时需要它们。
我见过两种解决方案:
a) 使用虚拟代码在编译时强制复制。这个解决方案似乎不够优雅。
b) 在其他项目中添加引用。此解决方案强制始终引用 DLL
有没有办法强制复制引用?
非常感谢
【问题讨论】:
-
在构建操作后使用 Visual Studio 编译器将 dll 复制到运行时或 dll 目录是另一种解决方案。例如,这是使用棱镜时的常见做法。它显示低耦合
-
您只需要复制文件。您可以使用 Project + Add Existing Item 将它们简单地添加到您的项目中,并将它们的 Copy to Output Directory 属性设置为“Copy if newer”。如果您不喜欢混乱,那么在构建后事件中使用 XCOPY /d 也可以。
-
抱歉,在其他项目中添加 dll 作为参考有什么问题?
-
问题是关于知识的。如果我引用程序集 A,在从项目 B 中引用它时,我是否需要知道其他程序集 A 需要什么才能起作用?如果我已将应用程序分层为数据访问、业务逻辑、用户界面,为什么我需要为我的用户界面层添加引用以确保包含我的数据访问层所需的所有必要程序集?为什么我什至想要?我应该只需要添加对我的业务逻辑层的引用,并自动带来依赖关系。