Rsync 错误。不支持指定的方法。 Visual Studio 2022 社区远程调试

问题描述 投票:0回答:1

我想调试我的项目,该项目使用 CMake。我有一个虚拟机(ubuntu),我正在 VS2022 中使用连接管理器通过 ssh 连接到我的机器。连接成功,但是当我想构建我的项目时,出现此错误。我不知道出了什么问题。有人可以帮助我解决问题或建议解决问题的方向吗?

日志:

1> [CMake] -- Generating done (0.1s)
1> [CMake] -- Build files have been written to: /home/...
1> Extracted CMake variables.
1> Extracted source files and headers.
1> Extracted code model.
1> Extracted toolchain configurations.
1> Extracted includes paths.
1> Specified method is not supported.
Specified method is not supported.
   at liblinux.IO.Rsync.PrepareForDirectorySync(Int32 sessionID, IReadOnlyCollection`1 paths, RsyncDirection direction, RemoteRsyncDaemon daemon, String[] daemonOptions, Int32 localPort, RsyncVerbosity verbosity, Boolean recursive, IReadOnlyCollection`1 includes, IReadOnlyCollection`1 excludes, String customOptions)
   at liblinux.IO.Rsync.<SyncDirectoriesAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at liblinux.IO.Rsync.<SyncDirectoriesAsync>d__23.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.CMake.Linux.Project.CMakeLinuxHeadersUpdateTask.<>c__DisplayClass9_0.<<UpdateHeaders>b__0>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Threading.JoinableTask.CompleteOnCurrentThread()
   at Microsoft.VisualStudio.CMake.Linux.Project.CMakeLinuxHeadersUpdateTask.UpdateHeaders(CMakeConfiguration config, IBuildProject project, String[] projectIncludes, String[] projectExcludes, String[] projectDownloads, Boolean force)
   at Microsoft.VisualStudio.CMake.Linux.Project.RemoteCMakeParser.<AfterParseAsync>d__33.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.CMake.Linux.Project.RemoteCMakeParser.<ParseAsync>d__29.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.CMake.Project.ExternalBuildProject.ProjectProvider.<ParseProjectAsync>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.VisualStudio.CMake.Project.ExternalBuildProject.ProjectProvider.<ParseProjectAsync>d__46.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.VisualStudio.Workspace.ExternalBuildFramework.Impl.ParseCache.<ParseAsyncImpl>d__34.MoveNext()```

I updated the rsync version on my machine, but it doesn't work.
ssh cmake remote-debugging rsync visual-studio-debugging
1个回答
0
投票

问题在于 CMake 生成了一个非常长的字符串,其中包含多个路径,并且据我了解,这些路径被传递给了PrepareForDirectorySync 方法。由于字符串的长度非常大,PrepareForDirectorySync 方法返回错误并停止构建。

© www.soinside.com 2019 - 2024. All rights reserved.