.net &引用;“目的地文件”;指4项,以及;“源文件”;指1项。它们必须具有相同数量的项目
使用MSBuild时,我需要将转换配置文件复制到各个子目录 我的目标体内有下面的代码.net &引用;“目的地文件”;指4项,以及;“源文件”;指1项。它们必须具有相同数量的项目,.net,visual-studio,build,msbuild,.net,Visual Studio,Build,Msbuild,使用MSBuild时,我需要将转换配置文件复制到各个子目录 我的目标体内有下面的代码 <ItemGroup> <EnvironmentDirectory Include="Environment\BackUp_Recovery\"/> <EnvironmentDirectory Include="Environment\IST\"/> <EnvironmentDirectory Include="Environment\Pr
<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>
按原样,我得到以下错误消息
“目标文件”指4项,“源文件”指1项。它们必须具有相同数量的项目。
当我查看输出窗口时,我观察到以下内容
2>任务“复制”(任务ID:73)
2> 任务参数:SourceFiles=obj\Release\AIT.UI.WinForm.exe.config(任务ID: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(任务ID:73)
2> 任务参数:SkipUnchangedFiles=True(任务ID:73)
2> C:\AITDevelopment\AIT.UI.WinForm\AIT.UI.WinForm.csproj(634,5):错误MSB3094:“DestinationFiles”表示4项,“SourceFiles”表示1项。它们必须具有相同数量的项目。
2> 已完成执行任务“复制”--失败。(TaskId:73)
如果您能帮我解决这个问题,我将不胜感激。谢谢 下面将基于ItemGroup将单个源文件…复制到多个位置
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="AllTargetsWrapper" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WorkingCheckout>.</WorkingCheckout>
</PropertyGroup>
<Target Name="AllTargetsWrapper">
<CallTarget Targets="CopyItTarget" />
</Target>
<ItemGroup>
<EnvironmentDirectory Include=".\Environment\BackUp_Recovery\"/>
<EnvironmentDirectory Include=".\Environment\IST\"/>
<EnvironmentDirectory Include=".\Environment\Production\"/>
<EnvironmentDirectory Include=".\Environment\UAT\"/>
</ItemGroup>
<PropertyGroup>
<TargetFileName>system</TargetFileName>
</PropertyGroup>
<Target Name="CopyItTarget">
<Exec Command="echo %(EnvironmentDirectory.Identity)"/>
<Copy SourceFiles="c:\windows\system.ini"
DestinationFiles="%(EnvironmentDirectory.Identity)$(TargetFileName).config"
/>
</Target>
</Project>
.
系统
请密切注意%(item.metadata)和@(item->'%(metadata)')之间的差异