代码之家  ›  专栏  ›  技术社区  ›  Martin Ullrich

升级到.NET Core 2.0:PackageTargetFallback和AssetTargetFallback不能一起使用

  •  65
  • Martin Ullrich  · 技术社区  · 9 年前

    netcoreapp2.0

     error NU1003: PackageTargetFallback and AssetTargetFallback cannot be used together. Remove PackageTargetFallback(deprecated) references from the project environment.
    

    这个错误的原因是什么?如何解决这个问题以重新构建项目?

    1 回复  |  直到 9 年前
        1
  •  116
  •   Martin Ullrich    8 年前

    在.NET Core 1.0和1.1中,需要设置 PackageTargetFallback dotnet 框架名字对象。

    因此,该项目( .csproj .fsproj ,…)将包含一行类似于:

    <PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
    

    该项目应该构建,因为.NETCore2.0已经定义了 AssetTargetFallback net461 -这意味着任何与.NETFramework 4.6.1或更高版本兼容的NuGet包都可以在不进行额外配置的情况下使用。

    如果这会引入更多生成/还原错误,请将行更改为:

    <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
    

    改变的原因是 被视为已弃用,应替换为 资产目标回退 其行为仅略有不同。

    工具的重大变化是 netcoreapp2.0 netstandard2.0 自动设置 资产目标回退 与任何 PackageTargetFallback 在项目文件中定义的值。