gpt4 book ai didi

.net - 使用 MSBuild 递归复制所有文件

转载 作者:行者123 更新时间:2023-12-01 01:35:05 35 4
gpt4 key购买 nike

我有以下一组带有 MSBuild 的文件:

<ScriptFiles Include="Server/scripts/**/*.js" />

然后我将其全部复制到另一个目录:

<Copy SourceFiles="@(ScriptFiles)" DestinationFiles="@(ScriptFiles->'$(BuildDir)/WWW/scripts/%(RecursiveDir)%(Filename)%(Extension)')" />

但是,我想做的是复制*.js,然后复制/yui/*.*。我尝试做的是:

<ScriptFiles Include="Server/scripts/**/*.js;Server/scripts/yui/**/*" />

然而,这样做的目的是将/yui/ 目录展平,并将yui 的所有文件直接放入/WWW/scripts

有更好的方法吗?

顺便说一句,我实际上使用的是 XBuild 而不是 MSBuild,但据我所知,这两者在很大程度上是兼容的。

最佳答案

%(RecursiveDir) 将匹配通配符部分。所以,如果在/yui/下你有:

yui/foo/bar/abc.dll

然后,yui/**/* 会将 %(RecursiveDir) 作为“foo/bar”。那是你期待的吗?如果是,那么这应该适用于 xbuild。您使用的是哪个版本? (xbuild --help).

“**”用于您还想从子目录中收集文件的情况。如果您尝试做的不同,那么您能举一个文件很少的例子吗?

尝试这样的事情:

<Message Text="ScriptFile: %(ScriptFile.Identity) , RD: %(ScriptFile.RecursiveDir)"/>
<Message Text="Paths: @(ScriptFiles->'$(BuildDir)/WWW/scripts/%(RecursiveDir)%(Filename)%(Extension)')"/>

这应该可以深入了解它为什么不起作用。

关于.net - 使用 MSBuild 递归复制所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569222/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com