问题描述
我正在尝试构建一个同时面向 .NET 4.5.1 和 .NET Standard 1.3 的类库.根据 文档,我应该可以做到这一点:
I'm trying to build a class library that multi-targets both .NET 4.5.1 and .NET Standard 1.3. According to the documentation, I should be able to do this:
<PropertyGroup>
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
</PropertyGroup>
但是,当我尝试构建时,我得到了这些奇怪的错误:
However, when I try to build, I get these odd errors:
无法从 TargetFramework='net451' 推断 TargetFrameworkIdentifier 和/或 TargetFrameworkVersion.必须明确指定它们.
Cannot infer TargetFrameworkIdentifier and/or TargetFrameworkVersion from TargetFramework='net451'. They must be specified explicitly.
MSB3645 .NET Framework v3.5 Service Pack 1 未找到.为了定位.NETFramework,Version=v1.3",必须安装 .NET Framework v3.5 Service Pack 1 或更高版本.
MSB3645 .NET Framework v3.5 Service Pack 1 was not found. In order to target ".NETFramework,Version=v1.3", .NET Framework v3.5 Service Pack 1 or later must be installed.
MSB3644 框架.NETFramework,Version=v1.3"的参考程序集没有找到.要解决此问题,请为此框架版本安装 SDK 或 Targeting Pack,或者将您的应用程序重新定位到已安装 SDK 或 Targeting Pack 的框架版本.请注意,程序集将从全局程序集缓存 (GAC) 中解析,并将用于代替引用程序集.因此,您的程序集可能无法正确定位于您想要的框架.
MSB3644 The reference assemblies for framework ".NETFramework,Version=v1.3" 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.
如果我手动指定目标框架标识符,它构建得很好:
If I specify the target framework identifiers manually, it builds fine:
<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 社区.我在这里做错了吗?
I'm using Visual Studio 2017 Community. Am I doing something wrong here?
推荐答案
你确定写了吗
<TargetFrameworks>net451;netstandard1.3</TargetFrameworks>
而不是
<TargetFramework>net451;netstandard1.3</TargetFramework>
?
在添加缺少的 s
这篇关于在 csproj 文件中进行多目标时生成错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)