我有一个看起来像这样的依赖链(出于示例目的简化):
应用 - > foo(包含foo.dll) - > bar(包含bar.dll和bar_data.xml)
依赖文件在数据文件上标记为“copy if newer”,在引用上标记为“copy local”。
如果我使应用程序依赖于foo和bar,那么我正确地获取所有三个文件。
我没有在msdn或stackoverflow上找到任何涉及此案例的内容。
MSBuild doesn't pick up references of the referenced project - 如果您有一个依赖关系的有向图而不是一棵树(app链接到foo和baz都链接到bar),则不起作用。
How to make MSBuild to automatically copy all indirect references to output (bin) folder和/LinkResource in Visual Studio 2010 - 仅适用于与项目名称完全相同的“.pdb”和“.xml”文件,但Alex's的示例似乎是更接近我的需要。
编辑:
如果您希望文件与dll位于完全相同的位置,则将要部署的文件(baz_data.xml)标记为“linkresource”。
在我的情况下,由于部署环境,我希望它们位于子目录中。