发布网站的项目时,临时路径太长(Temp path too long when publishing

2019-09-02 22:02发布

我想用发布一个ASP.NET网站项目发布网站的工具 ,但得到这个错误:

ASPNETCOMPILER(0,0):错误ASPRUNTIME:指定的路径,文件名,或者两者都太长。 完全合格的文件名必须少于260个字符,并且目录名称必须少于248个字符。

我看到它正试图将文件复制到应用程序数据很长的路径:

Copying all files to temporary location below for package/publish:

C:\Users\imx0\AppData\Local\Temp\1\WebSitePublish\BMW.Web-424993535\obj\Debug\AspnetCompileMerge\Source.

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe -v /BMW.Web -p C:\Users\imx0\AppData\Local\Temp\1\WebSitePublish\BMW.Web-424993535\obj\Debug\AspnetCompileMerge\Source C:\Users\imx0\AppData\Local\Temp\1\WebSitePublish\BMW.Web-424993535\obj\Debug\AspnetCompileMerge\TempBuildDir

我找不到任何关于我的.pubxml发布配置这种temp目录什么。 我怎样才能更改临时目录中的Visual Studio将文件复制到?

Answer 1:

添加到您的个人资料发布到修改包的临时目录/发布:

<AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath>


Answer 2:

这有点顺便说一句回答,而是试图MSBuild的是依赖于和的NodeJS一饮而尽解决办法时,我就遇到了这个问题。 问题是,吞气的依赖关系树变得非常深,aspnet_compiler试图该树复制到更深的目录,造成此错误。 我想一切都在这里指出,但没有奏效。

由于事有凑巧,我和TFS的建设,所以我的解决办法是运行attrib +h node_modules\* /S /D的MSBuild之前隐藏的目录树,然后attrib +h node_modules\* /S /D 。 这为我做。

肯定将是很好,如果在这种情况下,由编译器抛出的错误显示,导致写失败的路径...



Answer 3:

  1. 转到您的Web项目文件夹,浏览到属性\ PublishProfiles文件夹。
  2. 打开您的个人资料文件profile_name.pubxml(不是profile_name.pubxml.user)
  3. 复制/过去<AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath>的下<PropertyGroup>标签
  4. 保存文件,你就可以使用这个PROFIL发布你的网站


Answer 4:

其他答案都不为我工作。

的Visual Studio 2013社区版。

我改变了TMP和TEMP环境变量设置为短文件夹名称和它的工作。



Answer 5:

尝试添加该

<IntermediateOutputPath>..\Temp</IntermediateOutputPath>

到默认<propertyGroup />



Answer 6:

尽管内容node_modules既不版本控制是不包括未在*.csproj文件本身删除整个node_modules文件夹的伎俩我。



Answer 7:

我们确定使用此解决方案冗长的文件/文件夹,然后从那里修正了该问题:

  1. 运行在命令提示符下此脚本: dir /s /b | sort /r /+261 > out.txt dir /s /b | sort /r /+261 > out.txt它将输出的所有文件路径进入out.txt文件
  2. 输出复制到Excel文件
  3. 在从你加什么粘贴在今后的专栏,Excel函数: =LEN(A1)其中“A1”是细胞,复制此对每一个文件的长度,所以你可以看到路有多长
  4. 排序在Excel中的路径长度
  5. 标识长度超过建议上限

我知道这是一个有点啰嗦,但如果您有导致此问题的几个文件,你就可以看到他们所有。



Answer 8:

您可以尝试修正长文件路径问题的选择方案。

不过,如果不能够发布,由于一些其他的问题,你可以试试下面的方法。

=>如果“ 解决方案配置 ”是“ 调试 ”模式,请相同更改为“ 发行 ”模式和发布文件。

=>如果解决方案配置是在释放模式,如果问题仍然存在,请尝试删除先前在我们项目发布文件夹中 生成的DLL,并再次发布项目。

上述任何一种方法都可以解决此问题。



文章来源: Temp path too long when publishing a web site project