我有以下项目结构
主应用程序引用插件接口。插件接口没有引用。插件A和插件B引用插件接口。
我在运行时使用MEF加载我的插件。
我想以某种方式配置我的VS2012解决方案,即将插件复制到。\ Plugins而不是根文件夹。我怎么能这样做?
注意:目前我实际上是从我的主应用程序引用插件A和B,只是因为它们被复制到我的输出文件夹,这是一个丑陋的解决方案。
答案 0 :(得分:4)
您可以在Visual Studio中添加后期构建事件。
进入插件A的项目属性并单击Build Events选项卡,然后在Post-build event命令行框中输入类似于以下内容的代码:
copy "$(TargetPath)" "$(SolutionDir)MainApplicationPath\bin\debug\Plugins\$(TargetFileName)"
其中$(SolutionDir)
是解决方案的根文件夹,包括尾部斜杠(例如C:\DevProjects\MyApplication\
)。
如果您希望编译的文件进入应用程序的release文件夹,您也可以将路径更改为\bin\release
或将其添加为第二行。请注意,这只是在发布模式下编译时的发布编译,如果您在调试模式下编译并将路径更改为\bin\release
,您的发布文件夹中仍然只有调试版本。