VS/MSBUILD:复制子项目的输出文件,不添加对exe的引用
Posted
技术标签:
【中文标题】VS/MSBUILD:复制子项目的输出文件,不添加对exe的引用【英文标题】:VS/MSBUILD: Copy output files of sub-project without adding reference to exe 【发布时间】:2012-05-17 22:41:59 【问题描述】:我有一个解决方案,它由主应用程序MainProject
和几个插件项目Plugin1
、Plugin2
等组成。它们每个都构建在 Visual Studio 中的一个单独项目中。
为了构建解决方案,我希望将插件的所有文件复制到主应用程序的输出目录中。但我不希望 MainProject.exe
包含对插件 dll 的显式引用(它们是动态加载的)。因此为MainProject
定义项目引用不起作用。
我可以使用构建后步骤“手动”复制文件(如C# - Copy dlls to the exe output directory when using dependency injection with no references? 中所述),但由于每个插件可能有多个文件,而且它们也会不时更改,所以这个解决方案相当乏味维护(特别是因为我确实有不同的构建配置,它们每个都产生不同的文件)。此外,我想轻松选择应该为某个构建复制哪些插件。
执行此操作的最佳方法是什么,可能涉及自定义 MSBuild 配置更改?
【问题讨论】:
你有没有找到一个好方法来做到这一点?我认为如果有人为 VS2012 编写了一个不错的插件,并附带了一个自定义的 MSBuild 步骤,这将是非常务实和令人敬畏的! 【参考方案1】:查看此链接:http://msdn.microsoft.com/en-us/library/bb629394%28v=vs.100%29.aspx 在主项目上调用 MSBuild 时,如果您可以传递以下内容:
msbuild /p:CustomBeforeMicrosoftCommonTargets=[your custom msbuild file];PluginList=PathToPlugin1.csproj,PathToPlugin2.csproj
在您的自定义 msbuild 文件中,GatherInfo 等目标将为您提供每个插件项目的输出文件的路径。请参阅此问题以获取示例:https://***.com/questions/23346782/how-to-identify-files-needed-to-build-a-wix-project
【讨论】:
以上是关于VS/MSBUILD:复制子项目的输出文件,不添加对exe的引用的主要内容,如果未能解决你的问题,请参考以下文章