0

上次,我误解了我的情况,但是你们给了我非常快速和很好的解决方案。因此回来。我有一个新情况。我提供了我的代码片段。不知道出了什么问题。

我正在尝试复制到具有相同目录结构的多个服务器。不知道有什么问题...

<PropertyGroup>
<Srcfldr>C:\Msbuild\exproj\REbinaries</Srcfldr>
<copyfldr>c$\component1</copyfldr>
</PropertyGroup>

<ItemGroup>
    <SrcToCopy Include="$(Srcfldr)\**\*"/>
</ItemGroup>

<ItemGroup>
    <DestFldr Include="devsvr1;devsvr2"/>
    <DestToCopy Include="@(DestFldr)\$(copyfldr)"/>
</ItemGroup>

<Target Name="DeployBatching" Outputs="%(DestToCopy.FullPath)">
    <PropertyGroup>
        <DestToCopy>%(DestToCopy.FullPath)</DestToCopy>
    </PropertyGroup>
    <RemoveDir Directories="@(DestToCopy)"/>
    <MakeDir Directories="@(DestToCopy)"/>
    <Copy
        SourceFiles="@(SrcToCopy)"
        DestinationFiles="@(SrcToCopy->'$(DestToCopy)\%(RecursiveDir)\%(Filename)%(Extension)')"
    />
</Target>

4

2 回答 2

0

%(DestCopy.FullPath) 将表示集合中所有项目的元数据,并且不会转换为属性 $(DestToCopy)。

虽然发布有缺陷的脚本可以显示部分图片,但您还需要明确说明您的目标是什么,您希望看到什么以及您实际看到的是什么。

于 2014-08-26T18:21:40.073 回答
0

我厌倦了下面的代码并且似乎正在工作,但不确定这是否是最佳解决方案......

请各位高手点评一下...

<PropertyGroup>
<Srcfldr>C:\Msbuild\exproj\Rebinaries</Srcfldr>
<copyfldr>c$\component1</copyfldr>
</PropertyGroup>

<ItemGroup>
<SrcToCopy Include="$(Srcfldr)\**\*"/>
</ItemGroup>

 <ItemGroup>
 <DestToCopy Include="\\devsvr1\$(copyfldr);\\devsvr2\$(copyfldr)"/>
 </ItemGroup>

 <Target Name="DeployBatching" Outputs="%(DestToCopy.FullPath)">
    <PropertyGroup>
        <DestToCopy>%(DestToCopy.FullPath)</DestToCopy>
    </PropertyGroup>
    <RemoveDir Directories="@(DestToCopy)"/>
    <MakeDir Directories="@(DestToCopy)"/>
    <Copy
        SourceFiles="@(SrcToCopy)"
        DestinationFiles="@(SrcToCopy->'$(DestToCopy)\%(RecursiveDir)\%(Filename)%(Extension)')"
    />
</Target>
于 2014-08-26T18:38:01.037 回答