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