我有一个解决方案,它由主应用程序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配置更改)是什么?
答案 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