Visual Studio Code 无法加载项目 - 找不到 Microsoft.NET.Sdk.Web

4

我在Debian 9上使用Visual Studio Code有一个项目文件夹,其中包含一个引用了两个项目的解决方案文件。当打开该文件夹时,会出现一个横幅,上面写着“某些项目无法加载,请查看输出以获取更多详细信息”。查看输出后,主要的WebAPI项目会显示以下异常:

[warn]: OmniSharp.MSBuild.MSBuildProjectSystem

Failed to load project file '/home/aidan/Projects/WebApiDemo/WebApiDemo/WebApiDemo.csproj'.
/home/aidan/Projects/WebApiDemo/WebApiDemo/WebApiDemo.csproj(1,1)
Microsoft.Build.Exceptions.InvalidProjectFileException: The SDK 'Microsoft.NET.Sdk.Web' specified could not be found.  

单元测试项目返回相似的错误信息:The SDK 'Microsoft.NET.Sdk'指定的SDK未找到。 针对这种类型问题的其他答案都涉及到一个名为global.json的文件,但是我在我的项目中没有找到任何该文件。我的项目是新创建的.NET Core 2项目,并非从旧版本转换而来。添加global.json文件无济于事。一开始它是工作的,我不确定自己做了什么导致它出问题。我的$PATH变量中有dotnet文件夹。项目文件如下:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
  </ItemGroup>

</Project>

由于我在项目中没有看到任何关于SDK或其位置的明确引用,我陷入了困境 - 有什么想法导致了这种情况?


更新:重新安装.NET Core 2 SDK没有帮助。 - Aidan Black
CLI能用吗?请尝试:dotnet build。 - Bruno Garcia
dotnet build确实可以工作,dotnet test也是一样。这就很奇怪了。我不确定解决方案文件和csproj文件中缺少什么导致了这个错误。如果我尝试从解决方案文件夹运行dotnet run,它会要求一个明确的--project参数,但是当我传递一个csproj文件的路径时,它确实可以运行。 - Aidan Black
更新:我尝试在Windows上使用Visual Studio 2017打开相同的解决方案,以查看它是否会在解决方案或csproj文件中标记任何问题,或者是否会进行任何更改,但是它没有。该解决方案可以在VS2017中正常打开、构建和运行,尽管我遇到了让测试运行器找到我的单元测试的问题。 - Aidan Black
1个回答

1
尝试设置MSBuildSDKsPath
export MSBuildSDKsPath=/opt/dotnet/sdk/2.2.105/Sdks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接