【问题标题】:NuGet package manager marks target platform as unsupportedNuGet 包管理器将目标平台标记为不受支持
【发布时间】:2025-12-15 00:25:02
【问题描述】:

我从 .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 应用程序项目中正确引用它。它说目标平台不受支持。

我做错了什么?

【问题讨论】:

    标签: .net nuget .net-standard


    【解决方案1】:

    您的 csproj 文件中似乎有一些杂散的属性定义。

    删除属性TargetFrameworkIdentifierTargetFrameworkVersion 以及NetStandardImplicitPackageVersion

    只保留TargetFrameworks(并删除最后的流浪;),并让工具完成它的工作来找出所有其他属性的正确值,以便能够发布正确的nuget包。

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

    【讨论】: