this question的扩展名,但略有不同,接受的答案对于这种情况并不适用。
我们已经在项目的构建上建立了一个流程来生成一些额外的文件,这些文件正如预期的那样(正确地)生成到/bin
文件夹中。但是,当此项目作为依赖项引用时,它们不会被复制。
按照上述问题接受了答案(稍微调整一下),我设法让他们复制到依赖项目然而他们都被放入/bin
子dependents /bin
文件夹的文件夹(即/bin/bin
),这不是我需要发生的事情。
我们正在运行的流程是一个3 rd 派对流程(具体为Surviveplus.XmlCommentLocalization),所以我无法控制它的那一面。
我可以在依赖项目上做一些额外的事情,将它们从/bin/bin
移到升级中,但我宁愿让原始项目按照我的预期进行。
这是我使用的ItemGroup
,来自另一个问题:
<ItemGroup>
<Content Include="$(OutputPath)\**\*\*.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
我还尝试专门设置TargetPath
值,虽然没有记录(或者我对它视而不见),但似乎存在 - 根据msbuild输出日志
<ItemGroup>
<Content Include="$(OutputPath)\**\*\*.xml" KeepMetadata="TargetPath">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<TargetPath>..\</TargetPath>
</Content>
</ItemGroup>
但似乎在涉及Copy
任务时,它只是忽略它,并解析一个新的TargetPath
。我还在该项目组中尝试了无数种属性/项目类型的组合(即None,EmbeddedResource),但他们也没有解决它。
理想情况下,我认为MSBuild需要将生成的文件标记为生成的程序集的一部分?但是在迷失.target
文件和MSDN文档之后,我无法理解它。
正在使用的MSBuild是版本12.0,正在编译.net4.5。