我可以同时在csproj文件中定位.net standard2.0和net471吗?

时间:2019-03-08 03:31:35

标签: c# .net-core

我有一个项目,目标框架是.net标准2.0,我们在源代码中使用了System.Runtime.InteropServices.RuntimeInformation.OSDescription,但是该库不支持.net框架4.6.1。昨天,我们的一位客户报告有关此问题的错误。他的本地框架是.net框架4.6.1。 我可以设置目标框架以在用户添加Nuget包中的引用时通知用户吗? 为了使用户知道您的本地框架是否为4.6.1,请勿使用此版本程序包,否则将导致错误。

当我将目标框架设置为:

<PropertyGroup>
    <TargetFrameworks>netstandard2.0;net471</TargetFrameworks>
<PropertyGroup/>

然后运行dotnet build,我收到错误消息:

  

错误MSB3644:找不到框架“ .NETFramework,Version = v4.7.1”的参考程序集。   要解决此问题,请为此框架版本安装SDK或Targeting Pack   或将应用程序重新定位到已安装SDK或Targeting Pack的框架版本。   请注意,程序集将从全局程序集缓存(GAC)中解析,并将代替参考程序集。   因此,您的程序集可能未正确定位到您想要的框架。

然后我去办公室网站下载.net framework 4.7.1 SDK,但安装失败。 错误消息是

  

此计算机上已安装.NET Framework 4.7.1或更高版本

所以我很困惑!

这是我的dotnet --info enter image description here

1 个答案:

答案 0 :(得分:0)

似乎在开玩笑,我从.net framework 4.7.1下载了.net框架4.7.1,但无法安装。但是,当我使用Visual Studio安装程序安装.net Framework 4.7.1时。没关系。 现在运行dotnet build,成功了。我更困惑,为什么无法从.exe文件安装它。