Skip to main content

使用Visual Studio编译工程时出现路径太长导致编译失败怎么解决

分类:  故障排查 标签:  #.Net # 发布于: 2024-01-16 15:48:46

最近在学习一个开源的项目,这个项目自带了一些用于培训目的的模块,需要自己重新编译打包测试,编译的过程中总是遇到莫名奇妙的问题:


编译报这个错误之后,仔细看了一下编译错误中呈现的路径,发现这些路径都是没有问题的,但是编译器一直失败,通过查询了msbuild以及visual studio的文档之后,发现引发这个原因主要还是由于Windows系统对于长路径支持引发的,为了缓解这个问题,可以采用如下的步骤:

  1. 调整注册表,打开长路径支持:
    注册表的路径是:Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem, 寻找属性值:LongPathsEnabled, 将其值设为1:


  2. 配置Visual studio使其可以识别长路径的支持:
    找到Visual stuido的可执行文件的详细路径:devenv.exe, 例如:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE, 在该路径下创建文件:`devenv.exe.manifest', 该文件的内容如下:

    1. <?xml version="1.0" encoding="utf-8" ?>
      <application xmlns="urn:schemas-microsoft-com:asm.v3">
      <windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
      <ws2:longPathAware>true</ws2:longPathAware>
      </windowsSettings>
      </application>

      保存该文件,重启一下电脑。

      然后再重新编译就可以缓解了。