我正在尝试开始使用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!
发布于 2020-08-31 08:31:02
还有其他人知道是什么原因造成的吗?我希望能够在C#项目上工作,而不用每次通过命令行运行VS!
不知道你以前对你的对手做了什么。可能这个问题是由一些第三方集成工具、vs扩展或一些VS设置引起的。
建议
请尝试以下步骤:
1)确保您的VS2019安装了这两个工作负载
2)检查系统环境变量PATH,并确保它有值C:\Program Files\dotnet\
和,没有其他空格键。
如果有环境变量MSBuildSDKsPath,,则应该检查其值是否存在,并输入检查它的路径。如果没有,则应修改以使用已存在的地址。
如果MSBuildSDKsPath不存在,则应将其添加并将其值设置为
C:\Program Files\dotnet\sdk\3.1.xxx\Sdks
确保路径存在于您的PC下。
非常重要的:不要在变量值中使用引号,然后用\
完成它。因此,请检查每个环境,并确保没有混淆字符。
3)打开Extensions-->Manage与IDE,单击“菜单扩展”并输入已安装的扩展,然后禁用任何第三方扩展以检查问题是否是由这些扩展引起的。
Tools-->Import和导出Settings-->Reset所有设置或只运行devenv /Resetsettings
的重置所有VS设置。
5) 修理VS,如果有任何更新,可以将其更新为最新版本。
6)删除解决方案文件夹、bin
和obj
文件夹下的.vs
隐藏文件夹,然后再进行测试。
================================================
除了之外,还可以直接将开关添加到VS图标中,这样每次打开VS时,它都会同时运行/ResetSkipPkgs
。
右键单击icon-->Properties-->Shortcut快捷方式VS2019
将/ResetSkipPkgs
添加到
单击Apply和Ok来启用它。
注意事项:当您使用它时,您应该通过单击该图标来打开VS,而不是在不支持该功能的VS安装程序下启动它)。
如果在“开始”菜单中启动VS2019,则应在C:\ProgramData\Microsoft\Windows\Start Menu\Programs
中通过“我的函数”修改快捷方式。
发布于 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
复制相似问题