【发布时间】:2013-12-29 21:38:43
【问题描述】:
使用 MSBuild,我需要将转换配置文件复制到各个子目录。
我的目标正文中有以下代码
<ItemGroup>
<EnvironmentDirectory Include="Environment\BackUp_Recovery\"/>
<EnvironmentDirectory Include="Environment\IST\"/>
<EnvironmentDirectory Include="Environment\Production\"/>
<EnvironmentDirectory Include="Environment\UAT\"/>
</ItemGroup>
<!-- Copy task to copy file to environment folders -->
<Copy SourceFiles="$(IntermediateOutputPath)$(TargetFileName).config"
DestinationFiles="@(EnvironmentDirectory -> '@(EnvironmentDirectory)$(TargetFileName).config')"
SkipUnchangedFiles="true">
<Output TaskParameter="CopiedFiles" ItemName="SuccessfullyCopiedFiles" />
</Copy>
按原样,我收到以下错误消息。
“DestinationFiles”是指 4 个项目,“SourceFiles”是指 1 个项目。它们必须具有相同数量的项目。
当我查看输出窗口时,我观察到以下内容
2>任务“复制”(TaskId:73) 2> 任务参数:SourceFiles=obj\Release\AIT.UI.WinForm.exe.config (TaskId:73) 2> 任务参数: 2> 目标文件= 2> @(环境目录)AIT.UI.WinForm.exe.config 2> @(环境目录)AIT.UI.WinForm.exe.config 2> @(环境目录)AIT.UI.WinForm.exe.config 2> @(环境目录)AIT.UI.WinForm.exe.config (TaskId:73) 2> 任务参数:SkipUnchangedFiles=True (TaskId:73) 2>C:\AITDevelopment\AIT.UI.WinForm\AIT.UI.WinForm.csproj(634,5):错误MSB3094:“DestinationFiles”指的是4个项目,“SourceFiles”指的是1个项目)。它们必须具有相同数量的项目。 2>完成执行任务“复制”——失败。 (TaskId:73)
如果您能帮我解决这个问题,我将不胜感激。谢谢。
【问题讨论】:
-
密切关注%(item.metadata)和@(item->'%(metadata)')的区别
标签: .net visual-studio build msbuild