我的MSBuild知识有点生疏。我今天写了这个工作目标,但我确信它可以减小尺寸。
有人能看到如何更简单地表达这个吗?
<Target Name="FolderX">
<PropertyGroup>
<Dest>$(StandardModelDir)\FolderX</Dest>
</PropertyGroup>
<ItemGroup>
<File Include="$(CustDir)\File1.sql">
<Dest>$(Dest)\Views--Alpha</Dest>
</File>
<File Include="$(CustDir)\File2.sql">
<Dest>$(Dest)\Views--Alpha</Dest>
</File>
<File Include="$(CustDir)\File3.sql">
<Dest>$(Dest)\Views--Bravo</Dest>
</File>
<File Include="$(CustDir)\File4.sql">
<Dest>$(Dest)\Views--Bravo</Dest>
</File>
</ItemGroup>
<Copy
SourceFiles="@(File)"
DestinationFolder="%(File.Dest)\.."
/>
</Target>
请注意,文件不会以递归方式存储在源目录中,因此我无法使用%(RecursiveDir)
答案 0 :(得分:0)
您可以使用面具。在您的情况下,您可以使用文件扩展名掩码,* .sql
来自MSDN的示例:http://msdn.microsoft.com/en-us/library/3e54c37h.aspx
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceFiles Include="c:\MySourceTree\**\*.*"/>
</ItemGroup>
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')"
/>
</Target>
</Project>