我正在尝试开始使用c# (我一直在使用VS用于C++,没有问题),每当我试图打开一个C#项目时,我都会得到以下错误:
The project file cannot be opened. The SDK resolver "Microsoft.DotNet.MSBuildSdkResolver" failed to run. Illegal characters in path.
.csprj只有7行!
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
我尝试将"
替换为'
,但得到了相同的错误。
使用VS2019运行/ResetSkipPkgs
可以防止此问题发生,并且项目加载良好。但是我找不到问题的根源。
还有其他人知道是什么原因造成的吗?我希望能够在C#项目上工作,而不用每次通过命令行运行VS!
发布于 2021-10-31 01:33:25
Visual和dotnet附带的两个SDK解析器是:Microsoft.DotNet.MSBuildSdkResolver和Microsoft.Build.NuGetSdkResolver.
Microsoft.DotNet.MSBuildSdkResolver是解决像Microsoft.NET.Sdk和Microsoft.NET.Sdk.Web.这样的“内置”SDKs的方法。它首先查找dotnet (如C:\Program Files\dotnet\dotnet.exe)
下面是我的例子中的错误消息:
System.ArgumentException
HResult=0x80070057
Message=Illegal characters in path.
Source=mscorlib
StackTrace:
at System.IO.Path.CheckInvalidPathChars(String path, Boolean checkAdditional)
at System.IO.Path.Combine(String path1, String path2)
at Microsoft.DotNet.DotNetSdkResolver.EnvironmentProvider.<>c__DisplayClass7_0.<GetCommandPath>b__0(String p)
at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
at Microsoft.DotNet.DotNetSdkResolver.EnvironmentProvider.GetCommandPath(String commandName)
at Microsoft.DotNet.DotNetSdkResolver.NETCoreSdkResolver.GetDotnetExeDirectory()
您必须检查系统变量路径。打开命令提示符 (CMD)并键入:echo % path %并检查path (") C:\Program Files\Java\jdk1.8.0_291"\bin;
中是否存在非法字符
打开系统变量路径(对于Windows 10和Windows 8):
在我的例子中,java_home路径中有引号:
JAVA_HOME: "C:\Program Files\Java\jdk1.8.0_291"
路径: %JAVA_HOME%\bin;
1)您可以使用没有引号的短路径来更正路径
2)将下列路径( C:\Program Files\dotnet\
和C:\Program Files (x86)\dotnet\
)向上移动,保存并重新启动Visual 。
https://stackoverflow.com/questions/63642470
复制相似问题