NuGet包管理器将目标平台标记为不受支持

时间:2017-08-15 07:15:50

标签: .net nuget .net-standard

我已经从.Net Standard 1.3库创建了NuGet包。 csproj文件中的包定义:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <Summary>My package</Summary>
        <Description>My package description</Description>   
        <VersionPrefix>1.0.0</VersionPrefix>
        <Authors>Opensoft Inc.</Authors>
        <TargetFrameworks>netstandard1.3;</TargetFrameworks>
        <NetStandardImplicitPackageVersion>1.3</NetStandardImplicitPackageVersion>
        <TargetFrameworkIdentifier>.NETStandard</TargetFrameworkIdentifier>
        <TargetFrameworkVersion>v1.3</TargetFrameworkVersion>
        <NoWarn>$(NoWarn);1591</NoWarn>
        <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
        <GeneratePackageOnBuild>True</GeneratePackageOnBuild>
        <AssemblyName>TestAssembly</AssemblyName>
        <PackageIconUrl></PackageIconUrl>
        <PackageProjectUrl></PackageProjectUrl>
        <AssemblyVersion>1.0.0.0</AssemblyVersion>
        <FileVersion>1.0.0.0</FileVersion>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
        <PackageReference Include="System.Xml.XmlSerializer" Version="4.3.0" />
    </ItemGroup>

</Project>

但是在发布包之后,我无法从.Net Framework 4.6.1 Web应用程序项目中正确引用它。它说目标平台不受支持。

enter image description here

我做错了什么?

1 个答案:

答案 0 :(得分:0)

看起来你的csproj文件中有一些杂散的属性定义。

删除属性TargetFrameworkIdentifierTargetFrameworkVersion以及NetStandardImplicitPackageVersion

仅保留TargetFrameworks(并在最后删除迷路;),让工具完成其工作,找出所有其他属性的正确值,以便能够发布正确的nuget封装

请注意,如果您发布&#34;已更正&#34;包,您需要更改版本号或清除已下载损坏包的所有计算机上的本地包缓存(=&gt; dotnet nuget locals all --clear)。