【发布时间】:2019-05-31 12:44:15
【问题描述】:
我正在努力将 NuGet 引用从使用 packages.json 格式移到 PackageReferences。我对 NuGet 包的兼容性有疑问:该包支持旧版本的 .NET Framework。
这使用 packages.json 格式,效果很好。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MarkdownDeep.NET-Signed" version="1.5" targetFramework="net461" />
</packages>
<Reference Include="MarkdownDeep, Version=1.5.5082.29984, Culture=neutral, PublicKeyToken=65640b2d9fe5ac0e, processorArchitecture=MSIL">
<HintPath>..\..\packages\MarkdownDeep.NET-Signed.1.5\lib\.NetFramework 3.5\MarkdownDeep.dll</HintPath>
<Private>True</Private>
</Reference>
但是,将其替换为 .csproj 文件中的 PackageReference 指令会导致以下错误:
<PackageReference Include="MarkdownDeep.NET-Signed">
<Version>1.5</Version>
</PackageReference>
“C:\Source\WebApp.csproj”(恢复目标)(1)->(恢复目标)-> C:\Source\WebApp.csproj:错误 NU1202:包 MarkdownDeep.NET-Signed 1.5.0 与 net472 不兼容 (.NETFramework,版本=v4.7.2)。包 MarkdownDeep.NET 签名 1.5.0 支持:netframework35 (.NetFramework 3.5,Version=v0.0)
注意,两种情况下的当前目标框架都是一样的,v4.7.2。
是否有任何额外的指令可以添加到 <PackageReference> 节点,以允许我表明它可以针对 .NET Framework 3.5?
注意:
Package references (PackageReference) in project files 中有一些很好的信息,但它似乎只处理 TargetFramework 作为有条件地添加引用的变量。我不认为我需要处理各种 .NET Framework 版本 - 一直都是 v4.7.2。
【问题讨论】:
标签: .net nuget compatibility