我想用发布一个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将文件复制到?
添加到您的个人资料发布到修改包的临时目录/发布:
<AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath>
这有点顺便说一句回答,而是试图MSBuild的是依赖于和的NodeJS一饮而尽解决办法时,我就遇到了这个问题。 问题是,吞气的依赖关系树变得非常深,aspnet_compiler试图该树复制到更深的目录,造成此错误。 我想一切都在这里指出,但没有奏效。
由于事有凑巧,我和TFS的建设,所以我的解决办法是运行attrib +h node_modules\* /S /D
的MSBuild之前隐藏的目录树,然后attrib +h node_modules\* /S /D
。 这为我做。
肯定将是很好,如果在这种情况下,由编译器抛出的错误显示,导致写失败的路径...
其他答案都不为我工作。
的Visual Studio 2013社区版。
我改变了TMP和TEMP环境变量设置为短文件夹名称和它的工作。
尝试添加该
<IntermediateOutputPath>..\Temp</IntermediateOutputPath>
到默认<propertyGroup />
尽管内容node_modules
既不版本控制是不包括未在*.csproj
文件本身删除整个node_modules
文件夹的伎俩我。
我们确定使用此解决方案冗长的文件/文件夹,然后从那里修正了该问题:
- 运行在命令提示符下此脚本:
dir /s /b | sort /r /+261 > out.txt
dir /s /b | sort /r /+261 > out.txt
它将输出的所有文件路径进入out.txt文件 - 输出复制到Excel文件
- 在从你加什么粘贴在今后的专栏,Excel函数:
=LEN(A1)
其中“A1”是细胞,复制此对每一个文件的长度,所以你可以看到路有多长 - 排序在Excel中的路径长度
- 标识长度超过建议上限
我知道这是一个有点啰嗦,但如果您有导致此问题的几个文件,你就可以看到他们所有。
您可以尝试修正长文件路径问题的选择方案。
不过,如果不能够发布,由于一些其他的问题,你可以试试下面的方法。
=>如果“ 解决方案配置 ”是“ 调试 ”模式,请相同更改为“ 发行 ”模式和发布文件。
=>如果解决方案配置是在释放模式,如果问题仍然存在,请尝试删除先前在我们项目的 “ 发布 ” 文件夹中 生成的DLL,并再次发布项目。
上述任何一种方法都可以解决此问题。