当动态文件位于bin目录中时,MSBuild将动态生成的文件包含为项目依赖项的一部分

时间:2015-12-15 15:34:25

标签: msbuild

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。

0 个答案:

没有答案