发布网站项目时,临时路径太长

时间:2013-05-13 15:41:34

标签: asp.net visual-studio msbuild web-site-project web-publishing

我正在尝试使用Publish Web Site tool发布ASP.NET网站项目,但收到此错误:

  

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

我看到它正在尝试将文件复制到AppData中的一条很长的路径:

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发布配置文件中找不到有关此临时目录的任何信息。如何更改Visual Studio将文件复制到的临时目录?

9 个答案:

答案 0 :(得分:41)

将此添加到您的发布配置文件以修改包/发布的临时目录:

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

答案 1 :(得分:12)

这是一个旁听的答案,但我在尝试MSBuild依赖于nodeJS和gulp的解决方案时遇到了这个问题。问题是gulp依赖树变得非常深,aspnet_compiler试图将该树复制到更深的目录,导致此错误。我尝试了这里所提到的所有内容,但没有任何效果。

实际上,我正在使用TFS构建,所以我的解决方案是在msbuild之前运行attrib +h node_modules\* /S /D以隐藏目录树,然后attrib +h node_modules\* /S /D。这样做对我来说。

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

答案 2 :(得分:11)

  1. 转到您的Web项目文件夹,导航到Properties \ PublishProfiles文件夹。
  2. 打开个人资料档案profile_name.pubxml(不是profile_name.pubxml.user)
  3. <AspnetCompileMergeIntermediateOutputPath>c:\shortPath\</AspnetCompileMergeIntermediateOutputPath>标记
  4. 下复制/过去<PropertyGroup>
  5. 保存您的文件,您可以使用此个人资料发布您的网站

答案 3 :(得分:6)

其他答案都不适用于我。

Visual Studio 2013社区版。

我将TMP和TEMP环境变量更改为短文件夹名称,并且它有效。

答案 4 :(得分:4)

尝试添加此

<IntermediateOutputPath>..\Temp</IntermediateOutputPath>

到默认<propertyGroup />

答案 5 :(得分:1)

即使版本控件中没有包含node_modules的内容,也没有包含在*.csproj文件本身中,删除整个node_modules文件夹对我来说都是诀窍。

答案 6 :(得分:0)

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

  1. 在命令提示符下运行此脚本:dir /s /b | sort /r /+261 > out.txt它将所有文件路径输出到out.txt文件中
  2. 将输出复制到Excel文件
  3. 在下一栏中添加此Excel函数时粘贴的内容:=LEN(A1)其中“A1”是单元格,将其复制到每个文件长度,以便查看路径的长度
  4. 按路径长度在Excel中排序
  5. 确定超过建议限制的长度
  6. 我知道这有点啰嗦,但如果您有多个文件导致此问题,您将能够全部看到它们。

答案 7 :(得分:0)

您可以尝试使用所选解决方案来纠正长文件路径问题。

如果由于某些其他问题而无法发布,您可以尝试以下方法。

=&GT;如果“解决方案配置”处于“调试”模式,请将其更改为“发布”模式并发布文件。

=&GT;如果解决方案配置处于发布模式,并且问题仍然存在,请尝试 删除先前在 '发布中生成的dll项目的 文件夹 ,再次发布项目。

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

答案 8 :(得分:0)

对我来说,使用Visual Studio 2019,对发布配置文件.pubxml文件起作用的唯一更改是:

<WPPAllFilesInSingleFolder>c:\shortPath\</WPPAllFilesInSingleFolder>

我在Microsoft.Web.Publishing.targets文件的第484行发现了此属性。完整路径为C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Microsoft \ VisualStudio \ v16.0 \ Web。