c# - 构建时将库项目复制到子文件夹而不是根目录

标签 c# visual-studio mef

我有以下项目结构

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

主应用程序引用插件接口(interface)。插件接口(interface)没有引用。插件 A 和插件 B 引用插件接口(interface)。

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

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

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

最佳答案

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

进入插件 A 的项目属性,然后单击“构建事件”选项卡,然后在“构建后事件”命令行框中,输入类似于以下内容的代码:

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

其中 $(SolutionDir) 是包含尾部斜杠的解决方案的根文件夹(例如 C:\DevProjects\MyApplication\)。

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

关于c# - 构建时将库项目复制到子文件夹而不是根目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875105/

相关文章:

visual-studio - Visual Studio 2012 中的 'Waiting for Background operation' 是什么?

c# - 在 MEF 中使用通用接口(interface)

c# - 使用 MEF 从 X 个文件夹导入零件

c# - 如何使用 EPPlus 创建具有多个系列的图表?

c# - 付款被批准后如何从paypal取回信息?

android - 如何使 ASP.NET Web API Web 服务在本地网络中可用

c# - 使用 MEF 加载多个插件实例

c# - 将泛型类转换为其非泛型基类

c# - 用户控件而不是按钮

c# - .Net Metro App 中的 MarkUpExtension