4

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

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

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

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

4

1 回答 1

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

于 2014-09-07T05:26:33.010 回答