如何自动构建 MEF 模块

本文关键字:模块 MEF 构建 何自动 | 更新日期: 2023-09-27 17:57:17

我的项目中的模块在构建后被复制到一个文件夹中,并通过DirectoryCatalog导入。但是,由于模块项目未在主项目中的任何位置引用或实例化,因此当我按 F5 进行调试会话时,在对其进行更改后,它不会自动生成,因此会出现相同的错误,直到我去显式构建模块项目本身。

我正在寻找一种在构建主项目之前自动构建所有模块项目的方法。我必须有一个预生成事件,并为每个项目调用 C# 编译器,但这就是我完全迷失的地方。我该怎么做?

如何自动构建 MEF 模块

我相信有很多方法可以做到这一点,但最简单和最轻松的方法是只引用项目(请注意不要通过直接从这些项目中访问对象来破坏 MEF)。若要确保从这些项目获取最新版本,需要将 DirectoryCatalog 路径指向引用它的项目的 bin 文件夹。这是一个捷径,但它一直有效。您还可以探索添加一些构建后事件,但如果您正在共享代码并与其他人使用中央存储库,这可能会引起潜在的麻烦。