我有以下的任务,这是因为DestinationFiles和DestionationFolder的组合不工作,但它抓住的是我想做的概念:的MSBuild递归复制为%(ConfigurationToBuild.PlatformToBuild)
<CreateItem Include="$(Destination)\**\*.Generated.*.*">
<Output TaskParameter="Include" ItemName="GeneratedFiles" />
</CreateItem>
<Copy Condition=" '%(ConfigurationToBuild.FlavorToBuild)'=='Debug-All' Or '%(ConfigurationToBuild.FlavorToBuild)'=='Release-WebService' "
SourceFiles="@(GeneratedFiles)"
DestinationFiles="@(GeneratedFiles->'%(RecursiveDir)%(Filename)%(Extension)')"
DestinationFolder="$(BinariesRoot)\%(ConfigurationToBuild.PlatformToBuild)\%(ConfigurationToBuild.FlavorToBuild)"
/>
所以我有一组正在生成的文件(数据,而不是代码),这些文件需要复制到最终的二进制文件位置。
在此版本中,我一次构建3个配置:全部调试版本,发布客户端版本和发布WebService。原因是保持相同的内部版本号和完全相同的代码库,同时让客户端和WebService项目“发布”,然后由安装项目获取。
如果我尝试使用: DestinationFiles =“@(GeneratedFiles- >“$(BinariesRoot)\%(ConfigurationToBuild.PlatformToBuild)\%(ConfigurationToBuild.FlavorToBuild)\%(RecursiveDir)%(文件名)%(分机)')“
MSBuild在%(ConfigurationToBuild.FlavorToBuild)部件上引发错误。