【发布时间】:2019-05-07 19:33:39
【问题描述】:
我正在 Windows 10 计算机上导入 .NET 核心项目。这是一个包含 mvc 项目和测试项目的解决方案。当omnisharp 正在加载时,它会引发多个错误。
第一个:
movie-data\imdb_id_retrieval\imdb_id_retrieval.csproj(0,0): Error: Version 2.2.203 of the .NET Core SDK requires at least version 16.0.0 of MSBuild. The current available version of MSBuild is 15.9.21.664. Change the .NET Core SDK specified in global.json to an older version that requires the MSBuild version currently available.
好的,所以我更新了 Visual Studio 以确保我拥有 MSBuild 16.0。仔细检查我跑了
C:\Users\mcdonago\source\repos\movie-data> dotnet msbuild -version
Microsoft (R) Build Engine version 16.0.450+ga8dc7f1d34 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
16.0.450.56488
PS C:\Users\mcdonago\source\repos\movie-data>
omnisharp 启动时仍然出现此错误。
第二个错误:
Microsoft.Build.Exceptions.InvalidProjectFileException: The SDK 'Microsoft.NET.Sdk.Web' specified could not be found. c:\Users\mcdonago\source\repos\movie-data\imdb_id_retrieval\imdb_id_retrieval.csproj
人们建议我获取最新的 SDK。
PS C:\Users\mcdonago\source\repos\movie-data> dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.2.203
Commit: e5bab63eca
Runtime Environment:
OS Name: Windows
OS Version: 10.0.16299
OS Platform: Windows
RID: win10-x64
Base Path: C:\Program Files\dotnet\sdk\2.2.203\
Host (useful for support):
Version: 2.2.4
Commit: f95848e524
.NET Core SDKs installed:
2.2.203 [C:\Program Files\dotnet\sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.2.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.2.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
PS C:\Users\mcdonago\source\repos\movie-data>
只有一个 sdk,它是最新的。人们建议我将我的 Project sdk 引用更改为“Microsoft.Net.Sdk”而不是“Microsoft.Net.Sdk.Web”。这允许omnisharp成功加载问题,但是我有很多错误,比如
The type or namespace name 'System' could not be found (are you missing a using directive or an assembly reference?) (CS0246) [imdb_data_retrieval_test]
这似乎又是一大堆问题。
请注意,我的两个项目都成功编译并运行,所以我认为这是omnisharp 的问题?此外,在我家里有 vs 代码的 linux 计算机上,它工作正常。任何帮助,将不胜感激。我已经敲了几个小时,尝试了很多东西,但无法让 vs 代码与这个解决方案一起工作。
编辑: 这是我的 .csproj 文件。
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="HtmlAgilityPack" Version="1.9.1" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.2.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="4.0.1" />
</ItemGroup>
</Project>
--
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.0" />
<PackageReference Include="moq" Version="4.10.1" />
<PackageReference Include="nunit" Version="3.11.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.11.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\imdb_id_retrieval\imdb_id_retrieval.csproj" />
</ItemGroup>
</Project>
【问题讨论】:
-
你能添加你的csproj吗?了解更多信息可能会有所帮助
-
@rekiem87 好点。添加文件
标签: c# asp.net-core visual-studio-code omnisharp