首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VS2019 - MSBuild SdkResolver在使用C#时无法运行

VS2019 - MSBuild SdkResolver在使用C#时无法运行
EN

Stack Overflow用户
提问于 2020-08-29 00:56:03
回答 2查看 4K关注 0票数 6

我正在尝试开始使用c# (我一直在使用VS用于C++,没有问题),每当我试图打开一个C#项目时,我都会得到以下错误:

代码语言:javascript
运行
复制
The project file cannot be opened. The SDK resolver "Microsoft.DotNet.MSBuildSdkResolver" failed to run. Illegal characters in path.

.csprj只有7行!

代码语言:javascript
运行
复制
    <Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

</Project>

我尝试将"替换为',但得到了相同的错误。

使用VS2019运行/ResetSkipPkgs可以防止此问题发生,并且项目加载良好。但是我找不到问题的根源。

还有其他人知道是什么原因造成的吗?我希望能够在C#项目上工作,而不用每次通过命令行运行VS!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-31 08:31:02

还有其他人知道是什么原因造成的吗?我希望能够在C#项目上工作,而不用每次通过命令行运行VS!

不知道你以前对你的对手做了什么。可能这个问题是由一些第三方集成工具、vs扩展或一些VS设置引起的。

建议

请尝试以下步骤:

1)确保您的VS2019安装了这两个工作负载

2)检查系统环境变量PATH,并确保它有值C:\Program Files\dotnet\,没有其他空格键

如果有环境变量MSBuildSDKsPath,,则应该检查其值是否存在,并输入检查它的路径。如果没有,则应修改以使用已存在的地址。

如果MSBuildSDKsPath不存在,则应将其添加并将其值设置为

代码语言:javascript
运行
复制
C:\Program Files\dotnet\sdk\3.1.xxx\Sdks

确保路径存在于您的PC下。

非常重要的:不要在变量值中使用引号,然后用\完成它。因此,请检查每个环境,并确保没有混淆字符。

3)打开Extensions-->Manage与IDE,单击“菜单扩展”并输入已安装的扩展,然后禁用任何第三方扩展以检查问题是否是由这些扩展引起的。

Tools-->Import和导出Settings-->Reset所有设置或只运行devenv /Resetsettings重置所有VS设置。

5) 修理VS,如果有任何更新,可以将其更新为最新版本。

6)删除解决方案文件夹、binobj文件夹下的.vs隐藏文件夹,然后再进行测试。

================================================

除了之外,还可以直接将开关添加到VS图标中,这样每次打开VS时,它都会同时运行/ResetSkipPkgs

右键单击icon-->Properties-->Shortcut快捷方式VS2019

/ResetSkipPkgs添加到

单击ApplyOk来启用它。

注意事项:当您使用它时,您应该通过单击该图标来打开VS,而不是在不支持该功能的VS安装程序下启动它)。

如果在“开始”菜单中启动VS2019,则应在C:\ProgramData\Microsoft\Windows\Start Menu\Programs中通过“我的函数”修改快捷方式。

票数 17
EN

Stack Overflow用户

发布于 2021-10-31 01:33:25

Visual和dotnet附带的两个SDK解析器是:Microsoft.DotNet.MSBuildSdkResolverMicrosoft.Build.NuGetSdkResolver.

Microsoft.DotNet.MSBuildSdkResolver是解决像Microsoft.NET.SdkMicrosoft.NET.Sdk.Web.这样的“内置”SDKs的方法。它首先查找dotnet (如C:\Program Files\dotnet\dotnet.exe)

下面是我的例子中的错误消息:

代码语言:javascript
运行
复制
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):

  • 在搜索中,搜索并选择:System (控制面板)
  • 单击高级系统设置链接。
  • 单击环境变量。在系统变量一节中,找到PATH环境变量并选择它。
  • 单击编辑

系统变量

在我的例子中,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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63642470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档