我正在尝试使用
打开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.
不幸的是,崩溃的方法是内部的,我无法干预或查看导致错误的原因。
我在做什么错了?
答案 0 :(得分:0)
您是否尝试过在路径前面加上“ @”? 像这样:@“ C:\ AppsDemo \ CSharp \ Duplicates \ Duplicates.sln” 这样您就不会用“ \”弄乱您的路径了。