OpenSolutionAsync在路径合法的情况下因“路径中包含非法字符”而崩溃

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

我正在尝试使用]打开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.

不幸的是,崩溃的方法是内部的,我无法干预或查看导致此错误的原因。

我在做什么错?

我正在尝试使用Solution solutionToAnalyze = buildWorkspace.OpenSolutionAsync(pathSolution).Result打开C#解决方案文件;并且我得到消息,我在路径中包含非法字符。 ...

path roslyn roslyn-code-analysis
1个回答
0
投票

您是否尝试过在路径前面加上“ @”?像这样:@“ C:\ AppsDemo \ CSharp \ Duplicates \ Duplicates.sln”因此,您不要用“ \”弄乱您的路径。

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