无法将节点项目发布到 Azure - 文件名必须少于 260 个字符

Posted

技术标签:

【中文标题】无法将节点项目发布到 Azure - 文件名必须少于 260 个字符【英文标题】:Can't Publish Node Project to Azure - File name must be less than 260 Characters 【发布时间】:2016-02-03 19:32:18 【问题描述】:

我在 Visual Studio 2013 中使用 NodejsTools,但可以将我的项目发布到 Azure。当我构建我的文件时,我收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Node.js Tools\Microsoft.NodejsTools.targets(115,5):错误 MSB4018: “AssignTargetPath”任务意外失败。 System.IO.PathTooLongException:指定的路径、文件名或两者 太长了。全限定文件名必须小于 260 字符,并且目录名称必须少于 248 个字符。

关于如何解决这个问题/让我的节点项目发布到 Azure 的任何线索?

更新 1:如果我将项目移动到我的 Windows C: 驱动器中的根文件夹,构建错误就会消失并且构建成功。但是,如果我尝试发布,它会失败并且没有给出原因:

----- 发布开始:项目:MyProject,配置:释放任何 CPU ------ Auto ConnectionString 将 Web.config 转换为 obj\Release\CSAutoParameterize\transformed\Web.config。全部复制 文件到下面的临时位置以进行打包/发布: obj\Release\Package\PackageTmp.

========== 构建:0 成功,0 失败,1 最新,0 跳过 ========== ========== 发布:0 成功,1 失败,0 跳过 ==========

【问题讨论】:

【参考方案1】:

如果没有错误代码,则很难进行故障排除。

我建议您需要检查以.njsproj 结尾的node.js 项目文件中的<PropertyGroup> 值,例如<OutputPath>.</OutputPath> 等。任何信息,请与我分享。

在我的测试中,我必须通过 Azure Node.js 应用程序模板创建一个 nodejs 应用程序,以便我可以将其发布到 Azure Web Apps。

您可以尝试使用 Azure Node.js 应用程序创建一个新的 node.js 应用程序,并检查它是否可以发布到 Azure Web 应用程序。成功将应用发布到 Azure 后,您可以将代码复制到此项目中,然后再次尝试发布。

如有任何疑问,请告诉我。

【讨论】:

谢谢 Gary,我需要稍后再试一下,因为我目前正在使用 FTP 连接到 Azure。一旦我测试,我会回帖。【参考方案2】:

我遇到了同样的问题。在 Visual Studio 模板中创建的路径确实太长,无法上传到 Azure。路径可能在您的“node_modules”文件夹中。

我解决了这个问题如下: 在项目文件夹中,我删除了文件夹“node_modules”,其中包含构建项目所需的所有模块。您可以稍后添加这些模块,所以不用担心。

打开 Visual Studio,重新加载解决方案并在您的 Azure 帐户上再次发布您的项目。 Visual Studio 现在可能不会返回任何错误,因为所有路径都短于 240 个字符。

然后,登录 Azure 门户,打开您的 Web 应用并单击“添加磁贴”并添加控制台磁贴。打开控制台磁贴并运行命令“npm install”。此命令添加项目中的所有依赖项,因此添加文件夹“node_modules”以及项目所需的所有模块。您可以使用“Visual Studio Online Extension”查看您的项目并对其进行处理。

【讨论】:

以上是关于无法将节点项目发布到 Azure - 文件名必须少于 260 个字符的主要内容,如果未能解决你的问题,请参考以下文章

将节点应用程序部署到 Azure 应用程序服务时 .bin 文件夹中缺少文件

无法将文件上传到 Azure 文件共享

无法使用 Azure.Storage.Blobs NuGet 包将文件上传到 Azure Blob 存储

无法将文件上传到 Azure Blob Node.js

将csv数据直接写入节点js中的azure blob

无法将 React 应用(构建)文件夹部署到应用服务 Azure