You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows误报文件长度超限,Visual Studio Azure目标文件问题求助

解决Windows误报文件长度超出限制(关联Azure MSBuild目标文件)

我之前踩过一模一样的坑!看起来Windows提示的“文件长度超出限制”是个误导——真正的问题是MSBuild解析后的完整路径字符串长度触发了Windows的260字符路径限制,而不是文件本身的大小或者内容长度。你的项目里导入的Microsoft.WindowsAzure.targets路径用了一堆宏,展开后是个超长的完整路径,刚好撞了这个限制。

下面是我亲测有效的解决方案,按顺序试试:

1. 启用Windows长路径支持(最直接的系统级解决)

Windows默认限制路径长度为260字符,从Windows 10 1607版本开始可以解除这个限制:

  • 组策略方式(专业版/企业版)
    • 按下Win+R输入gpedit.msc打开组策略编辑器
    • 导航到计算机配置 > 管理模板 > 系统 > 文件系统
    • 找到「启用 Win32 长路径」,设置为「已启用」,重启电脑生效
  • 注册表方式(家庭版等无组策略的版本)
    • 按下Win+R输入regedit打开注册表编辑器
    • 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
    • 找到LongPathsEnabled(没有的话新建一个DWORD(32位)值),把值改成1,重启电脑

2. 简化MSBuild导入路径(项目级优化)

如果不想改系统设置,可以缩短导入目标文件的路径字符串:

  • 替换成相对路径:如果你的项目文件在Visual Studio目录下的某个子文件夹,直接用相对路径指向目标文件,比如:
    <Import Project="..\..\..\Microsoft\VisualStudio\v15.0\Windows Azure Tools\2.9\Microsoft.WindowsAzure.targets" />
    
  • 自定义短宏:在项目文件开头添加一个简化的宏,再用宏导入:
    <PropertyGroup>
      <AzureToolsShortPath>$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\2.9</AzureToolsShortPath>
    </PropertyGroup>
    <Import Project="$(AzureToolsShortPath)\Microsoft.WindowsAzure.targets" />
    

3. 迁移Visual Studio到更短的安装路径(根源解决)

如果你的VS安装在默认的长路径C:\Program Files (x86)\Microsoft Visual Studio\2017\Community,可以卸载后重新安装到更短的路径,比如C:\VS2017——这样整个项目相关的路径长度都会大幅缩短,从根本上避免这类路径长度问题。

验证方法

修改完成后,右键项目选择「重新加载项目」,然后尝试编译。如果还是报错,可以打开Visual Studio的详细构建日志:

  • 依次点击「工具 > 选项 > 项目和解决方案 > 构建和运行」
  • 把「MSBuild项目构建输出详细程度」设为「详细」
  • 重新编译,查看日志里实际解析后的目标文件路径,确认长度是否在限制内

内容的提问来源于stack exchange,提问作者Kurtis

火山引擎 最新活动