【发布时间】:2020-01-29 14:33:18
【问题描述】:
我正在尝试使用
打开一个 C# 解决方案文件 Solution solutionToAnalyze = buildWorkspace.OpenSolutionAsync(pathSolution).Result;
我收到消息说我的路径中有非法字符。
如果我写到控制台的路径,它会显示
C:\AppsDemo\CSharp\Duplicates\Duplicates.sln
而且我看不到任何非法字符。对我来说它看起来非常好。
完整的调试信息是这样的:
This exception was originally thrown at this call stack:
System.IO.Path.LegacyNormalizePath(string, bool, int, bool)
System.IO.Path.NormalizePath(string, bool, int, bool)
System.IO.Path.GetFullPathInternal(string)
Microsoft.CodeAnalysis.MSBuild.ProjectFile.GetAbsolutePath(string)
Microsoft.CodeAnalysis.MSBuild.ProjectFile.GetOutputDirectory()
Microsoft.CodeAnalysis.CSharp.CSharpProjectFileLoader.CSharpProjectFile.CSharpCompilerInputs.CSharpCompilerInputs(Microsoft.CodeAnalysis.CSharp.CSharpProjectFileLoader.CSharpProjectFile)
Microsoft.CodeAnalysis.CSharp.CSharpProjectFileLoader.CSharpProjectFile.GetProjectFileInfoAsync(System.Threading.CancellationToken)
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task)
System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(System.Threading.Tasks.Task)
...
[Call Stack Truncated]
Inner Exception 1:
ArgumentException: Illegal characters in path.
不幸的是,导致此崩溃的方法是内部的,我无法干预或查看导致错误的原因。
我做错了什么?
【问题讨论】:
标签: path roslyn roslyn-code-analysis