Visual Studio 2019 v16.6无法构建.NET5控制台应用程序并引发错误:未找到.NETFramework,版本=v5.0

10

开发环境:

  • 安装了Visual Studio 2019 v16.6.2
  • 安装了.Net5 preview 5

Microsoft.NETCore.App 5.0.0-preview.5.20278.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

  • 在Visual Studio中启用设计器
Tools > Options > Environment > Preview Features and select the Use the preview Windows Forms designer for .NET Core apps option. > re-start vs

我按照这个答案中的说明进行了操作。

我在 .net5 中创建了一个演示控制台项目。

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>  
</Project>

使用dotnet cli构建并运行就可以了

dotnet build  #ok
dotnet run # ok

尝试在Visual Studio中构建项目失败并出现错误。

错误 MSB3644:找不到 .NETFramework 版本为 v5.0 的引用程序集。要解决此问题,请安装此框架版本的开发人员包(SDK / Targeting Pack)或重新定位应用程序。您可以在以下链接下载 .NET Framework Developer Packs:https://aka.ms/msbuild/developerpacks

错误 NETSDK1005:'F:\ projects \ Net5Demo \ obj \ project.assets.json' 资产文件没有针对 '.NETFramework,Version = v5.0' 的目标。请确保已运行还原操作,并已在项目的 TargetFrameworks 中包含 'net50'。

我错过了什么,无法使用vs 2019 v16.6.2构建和运行项目?


确保您具有.NET 5.0兼容性的最佳方法是安装最新的Visual Studio预览版发布:https://visualstudio.microsoft.com/vs/preview/以及.NET 5 Preview 8的最新版本。(RC 1刚刚发布;因此,如果您这样做,请转到16.8预览版3)https://dotnet.microsoft.com/download/dotnet/5.0 - George Stocker
5个回答

5
根据https://dotnet.microsoft.com/download/dotnet/5.0的说明,似乎您还需要安装VS 2019 16.8预览版3才能识别它。
编辑:我遇到了同样的问题,在安装了VS 2019 16.8预览版3之后,它开始显示使用.NET 5.0的选项。

1
也许您需要在Visual Studio中启用预览功能:
转到“工具”>“选项”,并在左侧面板中输入“预览功能”。
然后在右侧面板中启用“使用 .NET Core SDK 的预览版(需要重新启动)”。

enter image description here


我根据这个答案,在我的帖子中提到的,启用了预览选项。 - M.Hassan
有些人建议从Visual Studio安装程序中安装Windows 10 SDK。我已经安装了这个SDK,但不确定是否需要。 - Junior Mayhé
Windows 10 SDK已经安装完毕。我认为根本问题在于Vs 2019 16.6.x没有使用Net5 SDK的MSbuild,而VScodedotnet build正在使用sdk 5的msbuild,并且运行良好。 - M.Hassan
1
我安装了SDK 5.0.100-preview.7,最新的Visual Studio 2019版本16.6.5,Windows 10 SDK,并在Visual Studio安装程序中选择了:通用Windows平台开发、NET桌面开发、ASP.NET和Web开发、Azure开发。NET 5.0项目构建正常。您可以尝试卸载、重新安装VS,但这次请尝试使用Visual Studio预览版进行测试https://visualstudio.microsoft.com/vs/preview/。 - Junior Mayhé
你尝试在VS2019.6.5中运行C#9了吗? - M.Hassan
可能,VS 2019 v16.7已发布,支持Net 5和c#9。 - M.Hassan

1
 help -> check for updates -> visual studio installer is displayed -> click update
  • 在Visual Studio 2019中启用设计师(如OP中所述)。
  • 更新到SDK 5.0.100-preview.7

只是为了检查c# 9的可用性,在开发人员命令提示符中输入以下命令:

csc -langversion:?

你会得到:

Supported language versions:
default
1
2
3
4
5
6
7.0
7.1
7.2
7.3
8.0 (default)
9.0
latestmajor
preview
latest

上面的列表包括9.0,您可以将LangVersion定义为9.0: 支持c# 9的控制台项目可以是:
<PropertyGroup>
  <OutputType>Exe</OutputType>
  <TargetFramework>net5.0</TargetFramework>
  <LangVersion>9.0</LangVersion> 
</PropertyGroup>

现在,VS 2019 v16.7可以成功编译.NET 5中的C# 9,并且IDE支持C# 9。
更新:2020年9月15日
VS 2019 16.7.3仅支持Preview7。
Full version
    5.0.100-preview.7.20366.6
Visual Studio support
    Visual Studio 2019 (v16.7, latest preview)
    Visual Studio 2019 for Mac (v8.7 preview)

.Net 5下载页面中,您可以找到官方的VS2019支持。似乎16.7.3仅支持预览7。

1
dotnet -info shows I have SDK 5.0.100-preview.8..., My VS is 16.7.3, and csc shows 9.0. My console app PropertyGroup looks the same as yours. I still get this error. I believe the root cause is that I do not have a v5.0 folder in C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore - Suamere
1
下载 .Net 5 页面中,您可以找到官方的VS2019支持。看起来16.7.x仅支持预览7。 - M.Hassan

0
你下载了 SDK 的 x64 版本还是 x86 版本?
你可以尝试下载预览版 6

0

我的VS是16.7.3(最新版)。但是,当我安装SDK 5.0.100-preview.8时,我在目标框架中看不到.Net 5.0。但是,在卸载它并重新安装SDK 5.0.100-preview.7之后,我可以看到它。


下载 .Net 5 页面中,您可以找到官方的VS2019支持。看起来16.7.x仅支持预览7。 - M.Hassan

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