gpt4 book ai didi

visual-studio - MSBuild 无法使用复制任务递归复制文件

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

我知道之前有人问过这种类型的问题(Recursively copy all files with MSBuildMSBuild recursive copy),但是我似乎无法让它为我的项目文件工作。

我使用的是 Visual Studio 2015,所以我不知道其他所有信息是否有任何变化。我还尝试按照此页面上的第二个示例进行操作,结果均相同:https://msdn.microsoft.com/en-us/library/3e54c37h.aspx

我正在尝试以递归方式将文件从我的源目录复制到我的 inetpub 目录。我的“BuildLocal”目标中有以下设置。

<ItemGroup>
<CopyFiles Include="**\*.cshtml" />
</ItemGroup>
<Copy SourceFiles="@(CopyFiles)" DestinationFiles="@(CopyFiles->'$(DeploymentFolder)\%(RecursiveDir)%(Filename)%(Extension)')" ContinueOnError="true" SkipUnchangedFiles="true" />

DeploymentFolder变量在我的 PropertyGroup 中设置如下:<DeploymentFolder>C:\inetpub\websites\TestSite</DeploymentFolder>

我得到的错误信息是:

warning MSB3021: Unable to copy file "**\*.cshtml" to "C:\inetpub\websites\TestSite\**\*.cshtml". Illegal characters in path.

将复制文件包含更改为 include="$(ProjectDir)**\*.cshtml"也没有影响...

在这个问题上的任何帮助都很棒 :)

最佳答案

我怀疑项目目录下有一个文件,其完整路径超过 260 个字符 (MAX_PATH)。在那种情况下,你会点击 an MSBuild bug这会导致通配符作为文字字符串而不是文件列表包含在内。这经常出现在 node_modules 文件夹中。

从 Visual Studio 2017 开始(技术上是 Prereview 5 预发布版),为包含长路径的文件夹添加 Exclude 属性将获取其余文件,而不是文字 * *\*.cshtml.

要解决此问题,您可以使用 Exec 任务来调用 robocopy 或类似任务。

关于visual-studio - MSBuild 无法使用复制任务递归复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34247366/

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