VS / MSBUILD:复制子项目的输出文件而不添加对exe的引用

时间:2012-05-09 12:04:17

标签: visual-studio msbuild project-reference

我有一个解决方案,它由主应用程序MainProject和几个插件项目Plugin1Plugin2等组成。每个项目都构建在Visual Studio中的一个单独项目中。

为了构建源代码,我希望将插件的所有文件复制到主应用程序的输出目录中。但我不希望MainProject.exe包含对插件dll的显式引用(它们是动态加载的)。因此,为MainProject定义项目引用不起作用。

我可以使用“手动”复制文件的后构建步骤(如C# - Copy dlls to the exe output directory when using dependency injection with no references?中所述),但由于每个插件可能有多个文件,并且它们也会不时更改此解决方案维护相当繁琐(特别是因为我有不同的构建配置,每个都生成不同的文件)。此外,我想轻松选择,应该为某个版本复制哪些插件。

执行此操作的最佳方法(可能涉及自定义MSBuild配置更改)是什么?

1 个答案:

答案 0 :(得分:0)

请看这个链接: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://stackoverflow.com/questions/23346782/how-to-identify-files-needed-to-build-a-wix-project