1

我有以下项目结构

  • 主应用程序(exe)
  • 插件接口 (dll)
  • 插件 A (dll)
  • 插件 B (dll)

主应用程序引用插件接口。插件接口没有参考。插件 A 和插件 B 引用插件接口。

我正在使用 MEF 在运行时加载我的插件。

我想以某种方式配置我的 VS2012 解决方案,将插件复制到 .\Plugins 而不是根文件夹。我怎样才能做到这一点?

注意:目前我实际上是从我的主应用程序中引用插件 A 和 B,只是为了将它们复制到我的输出文件夹,这是一个丑陋的解决方案。

4

1 回答 1

4

您可以在 Visual Studio 中添加构建后事件。

进入插件 A 的项目属性,然后单击 Build Events 选项卡,然后在 Post-build event 命令行框中,输入类似于以下内容的代码:

copy "$(TargetPath)" "$(SolutionDir)MainApplicationPath\bin\debug\Plugins\$(TargetFileName)"

$(SolutionDir)解决方案的根文件夹在哪里,包括尾部斜杠(例如C:\DevProjects\MyApplication\)。

\bin\release如果您希望编译的文件进入应用程序的发布文件夹,您还可以更改路径或将其添加为第二行。请注意,这只是在发布模式下编译时的发布编译,如果您在调试模式下编译并更改了路径,\bin\release您的发布文件夹中仍然只有一个调试版本。

于 2013-07-26T10:24:06.410 回答