如果这已经被覆盖,我很抱歉,但我无法在任何地方找到答案。
我有一个使用 MEF 组件的 MVC4 Web 应用程序。这些组件存在于同一解决方案中的另一个项目中,如下所示:
- 我的解决方案
- 网络项目
- 定义MEF接口的Dll项目(全部引用)
- 包含实际 MEF 类的 Dll 项目
- 另一个包含实际 MEF 类的 Dll 项目
Web 项目引用包含 MEF 接口 (#2) 的项目,但不引用包含实际 MEF 类 (#3 & #4) 的项目,因为这是框架的重点。我在#3 和#4 上有一个构建后步骤,将它们编译的程序集复制到Web 项目的bin 文件夹中,并且Web 项目也被标记为依赖于#3 和#4 项目。
这在我的机器上运行得非常好,编译和改组 Dll,但是当我实际上必须部署这个东西时,我需要做两个步骤:像其他任何一样部署 web 项目,然后手动复制项目 #3 创建的程序集和#4到服务器上。因为它们并没有真正被 Web 项目引用,所以它们不会被 Web Publishing 的东西所采用。
我查看了 Web Publish 项目设置,虽然我显然可以将其设置为复制项目文件夹中的所有小东西,但我不能将其设置为仅复制特定的辅助文件。除了在 Web 项目中添加对 #3 和 #4 程序集的硬引用之外,还有其他方法吗?