.Net Core 5 项目无法在 Visual Studio 2019 中运行

Posted

技术标签:

【中文标题】.Net Core 5 项目无法在 Visual Studio 2019 中运行【英文标题】:The .Net Core 5 project can't be run in Visual Studio 2019 【发布时间】:2021-11-17 09:06:11 【问题描述】:

我的一位同事提供了一个 .Net Core 项目,该项目由 .Net SDK 5 和 VS Code 管理。 但现在我想在 Visual Studio 2019 中管理它,因为它更容易导航代码和运行/调试项目。 我可以通过选择 File/Open/Folder... 打开项目文件夹,然后在 VS 2019 中选择项目文件夹。 但是当我尝试通过单击工具栏中的运行按钮来运行它时,如下所示,我得到如下警告框。 I clicked this run button to run project Build failed alert message

这是构建输出。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1183,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v5.0" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.

我试图解决这个项目,但我无法管理它。 我安装的是:

Microsoft .NET SDK 5.0.400 Visual Studio 2019 16.0.1 ASP.NET 和 Web 工具 2019 - 16.0.12311.10635 ASP.NET Web 框架和工具 2019 - 16.0.12311.10635 其他更多

而Api.csproj文件如下:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>
  
  <ItemGroup>
  <PackageReference Include="HangFire.Core" Version="1.7.*" />
  <PackageReference Include="Hangfire.PostgreSql" Version="1.7.*" />
  <PackageReference Include="Hangfire.AspNetCore" Version="1.7.*" />
    <PackageReference Include="Dapper" Version="2.0.90" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="5.0.3" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="5.0.3" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.3" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.3">
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
      <PrivateAssets>all</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.2" />
    <PackageReference Include="StackExchange.Redis" Version="2.2.4" />
    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.3.3" />
    <PackageReference Include="NBitcoin" Version="5.0.55" />
    <PackageReference Include="Nethereum.HdWallet" Version="3.8.0" />
    <PackageReference Include="Nethereum.Signer" Version="3.8.0" />
    <PackageReference Include="Nethereum.Web3" Version="3.8.0" />
    <PackageReference Include="NBitcoin.Altcoins" Version="2.0.20" />
    <PackageReference Include="Postmark" Version="4.5.0" />
    <PackageReference Include="Wangkanai.Detection" Version="3.0.0" />

  </ItemGroup>

</Project>

谁能帮我解决?谢谢。

【问题讨论】:

1) “.NET Core”已重命名为“.NET 5”。 2).Net Core 5项目无法在Visual Studio 2019中运行:废话。 COURSE MSVS 2019 支持 .NET 5.0!建议:重新安装 MSVS 2019。听起来您当前的 MSVS 安装可能缺少 .Net 5 程序集。有几种方法可以解决和解决特定问题:但最快/最简单的方法通常只是完整安装。 您的机器上是否安装了 .NET 5 SDK? “选择文件/打开/文件夹”是完全错误的。请打开解决方案/项目文件。 我已经正确安装了 .NET 5 SDK。 当我通过解决方案/项目文件打开项目并构建它时,它给出了很多错误,所以我认为这不是正确的解决方案。 【参考方案1】:

可能有两个问题

    缺少 SDK,您可以使用检查 SDK 版本
dotnet --version

输出应该是 5.0.x 要么 尝试使用以下

 dotnet --info

它会给你所有的 SDK 信息,对我来说输出是

.NET SDK (reflecting any global.json):
 Version:   5.0.201
 Commit:    a09bd5c86c

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.19043
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\5.0.201\

Host (useful for support):
  Version: 5.0.4
  Commit:  f27d337295

.NET SDKs installed:
  5.0.201 [C:\Program Files\dotnet\sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.All 2.1.26 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.1.26 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 5.0.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.1.26 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.NETCore.App 5.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
  Microsoft.WindowsDesktop.App 3.1.13 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
  Microsoft.WindowsDesktop.App 5.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

To install additional .NET runtimes or SDKs:
  https://aka.ms/dotnet-download

如果您没有 .NET 5 SDK,请从https://dotnet.microsoft.com/download/dotnet/5.0 下载并重新启动您的解决方案。

    您使用的 Visual Studio 版本过时,请检查是否有可用的更新。对于 .NET5,您至少需要 VS 2019 16.8。

【讨论】:

当我查询 dotnet --version 我得到 5.0.401。那我是不是 VS2019 过时了? 你的VS版本是多少? 只需转到解决方案文件夹并运行 dotnet build,如果您有正确的版本,那么它应该构建。 如果正在构建,则 vs 无法检测到版本,您可能需要重新启动系统或重新安装 vs。我使用的是 vs 2022 预览版(但过去,我使用的是 vs2019 16.9. 3.x) 我可以通过“dotnet run”命令构建和运行文件夹。【参考方案2】:

我有类似的问题,违反了所有逻辑。我最终做了什么,我在 VS2019 中创建了一个 new 解决方案(不确定你有什么样的项目,但假设是 Web 应用程序)。 然后 只需添加 VS Code 项目中的代码文件即可;添加缺少的库 - 继续。

请注意,当您创建新解决方案时,您会看到您正在使用什么框架。确保它是 .NET 5(这将确认您已安装 .NET 5 - 它通常作为 VS2019 安装的一部分安装)。显然,如果您无法搭建/构建/运行您的解决方案 - 您将面临更大的问题。

另外,请注意,当您在 VS2019 中打开时,我使用单词 solution(.sln 文件),而 project(.csproj 文件)是您在 VS Code 中创建的。在 VS2019 中仍然可以打开项目,但它会提示您创建并保存解决方案

【讨论】:

【参考方案3】:

我有类似的问题,VS 2019 16.0 不支持 .net core 5

您需要更新 Visual Studio 2019。 如果你去属性项目你会发现.net core 没有列出,更新后一切正常。

【讨论】:

【参考方案4】:

您必须更新 Visual Studio 2019。在 download page,您可以看到支持 .NET 5 的 Visual Studio 的最低版本。

【讨论】:

以上是关于.Net Core 5 项目无法在 Visual Studio 2019 中运行的主要内容,如果未能解决你的问题,请参考以下文章

表单视图设计器无法在 Visual Studio 2019 中使用 c# .NET Core 3.1 [重复]

Visual Studio 2017 安装中断 Visual Studio 2015 ASP.NET Core 项目

.NET Core 2.2 无法在 Visual Studio Build Framework 中选择

如何在 Visual Studio 2019 中将 WCF 服务添加到 .NET Core 项目?

ASP.NET Core 项目的 Visual Studio 中的“REST API 客户端”选项?

Visual Studio 2015 没有将 TypeScript 编译为 ASP.NET Core 项目的一部分?