2014-04-08 30 views
2

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

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

回答

0

我确信有很多方法可以做到这一点,但最简单也最没有痛苦的方法就是引用项目(只要小心不要通过直接访问这些项目中的对象来破坏MEF) 。为确保您从这些项目获得最新版本,您需要将DirectoryCatalog路径指向引用它的项目的bin文件夹。这是一条捷径,但它始终有效。您还可以探索添加一些生成后事件,但是如果您正在共享代码并与其他人一起使用中央存储库,则可能会导致潜在的头痛。

+0

我创建了一个引用所有模块的项目,然后我只引用这个项目。当我想摆脱引用时更容易整理,并且更容易将其添加回去。 – ProfK