我有以下项目结构
- 主应用程序(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/