在我的cpp项目文件中,我有一个如下定义的项目组:
<ItemGroup>
<None Include="dir1\file1" />
<None Include="dir1\blah.dll" />
<None Include="dir1\dir2\something.dll" />
<None Include="dir1\dir2\dir3\another_file.dll" />
</ItemGroup>
我有一个AfterBuild目标,我希望将上述文件(并保留其目录结构)复制到一个新位置,例如:
<Target Name="AfterBuild">
<Copy SourceFiles="@(None)" DestinationFiles="@(None->'$(NewDirectory)%(RecursiveDir)%(Filename)%(Extension)')" ContinueOnError="false" />
</Target>
注意:$(NewDirectory)在其他地方定义。
但是,上面只是将文件复制到$(NewDirectory),但忽略了项目列表的目录结构(即Dir1,Dir2和Dir3)。有没有办法在不必创建新列表的情况下执行此操作?
答案 0 :(得分:1)
我刚刚解决了这个问题!用%(RelativeDir)替换%(递归),即:
<Copy SourceFiles="@(None)" DestinationFiles="@(None->'$(NewDirectory)%(RelativeDir)%(Filename)%(Extension)')" ContinueOnError="false" />
答案 1 :(得分:0)
如果要保留目录结构,请使用以下命令:
<Copy SourceFiles="@(None)" DestinationFolder="$(NewDirectory)\%(None.RelativeDir)" />