只是想知道是否有人可以帮助我的一些msbuild脚本,我正在尝试编写。我想做的是使用msbuild将所有文件和子文件夹从一个文件夹复制到另一个文件夹。
{ProjectName}
|----->Source
|----->Tools
|----->Viewer
|-----{about 5 sub dirs}
我需要能够做的是将tools文件夹中的所有文件和子文件夹复制到应用程序的debug文件夹中。这是我到目前为止所拥有的代码。
<ItemGroup>
<Viewer Include="..\$(ApplicationDirectory)\Tools\viewer\**\*.*" />
</ItemGroup>
<Target Name="BeforeBuild">
<Copy SourceFiles="@(Viewer)" DestinationFolder="@(Viewer->'$(OutputPath)\\Tools')" />
</Target>
构建脚本会运行,但不会复制任何文件或文件夹。
谢谢
发布于 2013-03-31 00:06:47
我也在寻求这方面的帮助。这花了我一段时间,但以下是我所做的工作,效果非常好。
<Target Name="AfterBuild">
<ItemGroup>
<ANTLR Include="..\Data\antlrcs\**\*.*" />
</ItemGroup>
<Copy SourceFiles="@(ANTLR)" DestinationFolder="$(TargetDir)\%(RecursiveDir)" SkipUnchangedFiles="true" />
</Target>
这会递归地将名为antlrcs
的文件夹的内容复制到$(TargetDir)
。
发布于 2008-09-23 12:35:42
我认为问题可能出在您创建ItemGroup和调用复制任务的方式上。看看这是否有意义:
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<PropertyGroup>
<YourDestinationDirectory>..\SomeDestinationDirectory</YourDestinationDirectory>
<YourSourceDirectory>..\SomeSourceDirectory</YourSourceDirectory>
</PropertyGroup>
<Target Name="BeforeBuild">
<CreateItem Include="$(YourSourceDirectory)\**\*.*">
<Output TaskParameter="Include" ItemName="YourFilesToCopy" />
</CreateItem>
<Copy SourceFiles="@(YourFilesToCopy)"
DestinationFiles="@(YourFilesToCopy->'$(YourDestinationDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
</Target>
</Project>
发布于 2010-01-03 09:05:57
我对MSBuild有点陌生,但我发现EXEC任务在这种情况下很方便。我在我的项目中遇到了同样的挑战,这对我来说是有效的,而且要简单得多。如果这不是一个好的实践,请告诉我。
<Target Name="CopyToDeployFolder" DependsOnTargets="CompileWebSite">
<Exec Command="xcopy.exe $(OutputDirectory) $(DeploymentDirectory) /e" WorkingDirectory="C:\Windows\" />
</Target>
https://stackoverflow.com/questions/119271
复制相似问题