asp.net-core - introduccion - porque usar.net core
ActualizaciĆ³n a.NET Core 2.0: PackageTargetFallback y AssetTargetFallback no se pueden usar juntos (1)
En .NET Core 1.0 y 1.1, era necesario configurar
PackageTargetFallback
al hacer referencia a paquetes que funcionan en .NET Core pero que no lo admiten oficialmente, por ejemplo, bibliotecas PCL o bibliotecas creadas para el apodo heredado del marco dotnet.
Debido a esto, el proyecto (
.csproj
,
.fsproj
, ...) contendrá una línea similar a:
<PackageTargetFallback>$(PackageTargetFallback);portable-net45+win8+wp8+wpa81;</PackageTargetFallback>
En la mayoría de los casos, esta línea simplemente se puede eliminar
y el proyecto debe compilarse porque .NET Core 2.0 ya define
AssetTargetFallback
como
net461
, lo que significa que cualquier paquete NuGet que sea compatible con .NET Framework 4.6.1 o superior se puede usar sin configuración adicional .
Si esto introduce más errores de compilación / restauración, cambie la línea a:
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
La razón del cambio es que
PackageTargetFallback
se considera obsoleto y debe reemplazarse por
AssetTargetFallback
que se comporta solo ligeramente diferente.
El cambio
netcoreapp2.0
en las herramientas es que
netcoreapp2.0
y
netstandard2.0
configuran automáticamente
AssetTargetFallback
que entra en conflicto con cualquier valor
PackageTargetFallback
definido en el archivo del proyecto.
Al actualizar un proyecto que se está compilando y ejecutando bien en .NET Core 1.0 o 1.1, actualizar el marco de destino a .NET Core 2.0 (
netcoreapp2.0
) hace que la compilación falle con el siguiente error:
error NU1003: PackageTargetFallback and AssetTargetFallback cannot be used together. Remove PackageTargetFallback(deprecated) references from the project environment.
¿Cuál es la razón de este error y cómo se puede resolver hacer que el proyecto vuelva a compilarse?