我正在尝试构建一个多目标.NET 4.5.1和.NET Standard 1.3的类库。根据{{3}},我应该能够做到这一点:
<PropertyGroup>
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
然而,当我尝试构建时,我得到了这些奇怪的错误:
无法从TargetFramework ='net451'推断出TargetFrameworkIdentifier和/或TargetFrameworkVersion。必须明确指定它们。
MSB3645 找不到.NET Framework v3.5 Service Pack 1。要以“.NETFramework,Version = v1.3”为目标,必须安装.NET Framework v3.5 Service Pack 1或更高版本。
MSB3644 找不到框架“.NETFramework,Version = v1.3”的参考程序集。要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位到您想要的框架。
如果我手动指定目标框架标识符,则构建正常:
<PropertyGroup>
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net451'">
<TargetFrameworkIdentifier>.NETFramework</TargetFrameworkIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard1.3'">
<TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>
</PropertyGroup>
我正在使用Visual Studio 2017社区。我在这里做错了吗?
答案 0 :(得分:55)
您是否确实写过<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
而不是<TargetFramework>net451;netstandard1.3</TargetFramework>
?
我收到了同样的错误,直到我添加了丢失的s