visual-studio - VS/MSBUILD : Copy output files of sub-project without adding reference to exe

标签 visual-studio msbuild project-reference

我有一个包含主应用程序 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 配置更改?

最佳答案

请参阅此链接: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

关于visual-studio - VS/MSBUILD : Copy output files of sub-project without adding reference to exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10515708/

相关文章:

iphone - 我如何在 xcode 4 中引用一个单独的项目?

c# - 使用 xampp 的 C# 中的 MySql 错误 1064

visual-studio - 为什么我需要安装 MSVC++ redist。?

c# - 在 .csproj 中更改build设置的程序集名称

.net - 如何将自定义 nuget feed 添加到 TeamCity 构建?

.net - 添加对 MEF 插件项目的引用时,为什么会出现警告图标?

带有第三方库的 Typescript 3 项目引用(来自 npm)

c - 如何从 Visual Studio C 编译器获得更有用的警告?

c++ - 全局摆脱警告C4503

c# - 无法在 visual studio 2015 中构建,因为找不到 'Microsoft.Build.Tasks.v14.0.dll'