Visual Studio 2017 no puede actualizar Microsoft.NETCore.Paquete de aplicaciones ("Bloqueado por el proyecto")


Tengo una aplicación dotnet core que se dirige a Microsoft.NETCore.App 1.1.2. Creé un proyecto de prueba para probar contra ese proyecto, pero al construir noté esta advertencia: introduzca la descripción de la imagen aquí

Abro el Gestor de paquetes NuGet y veo que la advertencia es correcta, el proyecto que se está probando tiene una versión diferente de Microsoft.NETCore.App: introduzca la descripción de la imagen aquí introduzca la descripción de la imagen aquí

Mi problema es que Visual Studio no me permite actualizar esa versión, por lo que estoy confundido sobre cómo resolver esto cuestión: introduzca la descripción de la imagen aquí Lo ideal sería simplemente hacer clic en el menú desplegable y seleccionar la versión correcta, pero Visual Studio afirma que no puede hacer esto debido a "restricciones adicionales en el proyecto o los paquetes.config". ¿Cómo se supone que debo actualizar ese paquete? ¿A qué "restricciones adicionales" se refiere Visual Studio?

Author: riqitang, 2017-05-17

6 answers

Las referencias implícitas de paquetes que el Microsoft.NET.Sdk infiere no se pueden actualizar a través de NuGet.

Si migró desde el proyecto.json, el proyecto con la referencia 1.1.0 probablemente contiene

<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>

En el archivo csproj o un elemento como este (si puede usar el administrador de paquetes previamente para establecer la versión):

<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />

Elimine entradas como las anteriores y todos los paquetes harán referencia a 1.1.2 (o a lo que el SDK instalado considere que es el último) automáticamente. Alernatively, set RuntimeFrameworkVersion en todos los proyectos.

 39
Author: Martin Ullrich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-17 18:04:18

Tuve un problema similar al intentar instalar Entityframework.Paquete Core en una aplicación web. NET Core 2. Para resolver el problema, he forzado la instalación a través de la consola del Administrador de paquetes:

Install-Package Microsoft.NETCore.App -Version 2.0.5

(2.0.5 fue la versión más reciente en ese momento)

Espero que sea útil. Paz.

 33
Author: Marlon Dias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-18 21:21:42

Para mí añadiendo

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

Hizo el truco

<PropertyGroup>
  <TargetFramework>netcoreapp2.1</TargetFramework>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>
 7
Author: gsharp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-23 08:44:46

Otra posible solución. En el archivo csproj, actualice el framework de destino a la versión a la que desea actualizar. Después de hacer el cambio, como se muestra a continuación, los paquetes se pueden actualizar a través de la solución NuGet package manager.

Antes:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>

Después de:

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
 1
Author: JTravolta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-28 15:26:41

Respuesta Corta

Agregue una versión explícita a la referencia del paquete Microsoft.AspNetCore.App en su .archivo csproj.

Respuesta Larga

Tenía un nuevo proyecto netcoreapp2.1. El siguiente estaba en el .archivo csproj. Nota no había ninguna versión asociada con la referencia del paquete Microsoft.AspNetCore.App.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  ...
</ItemGroup>

He añadido una referencia explícita al paquete Microsoft.Extensions.Logging.Abstractions para resolver un desajuste de dependencias (error de compilación). Micorsoft.AspNetCore.App se busca la versión 2.1.0 de esta dependencia, pero otro paquete quería la versión 2.1.1. Mi .el archivo csproj ahora se veía así.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

Esto redujo el error de compilación a una advertencia sobre Micorsoft.AspNetCore.App que requiere la versión 2.1.0 del paquete Microsoft.Extensions.Logging.Abstractions, pero la versión 2.1.1, por supuesto, se resolvió.

Tratando de actualizar Micorsoft.AspNetCore.App a la versión 2.1.1 para corregir la advertencia fue bloqueada por el Administrador de paquetes como se menciona en el OP.

Actualizé mi referencia de paquete Micorsoft.AspNetCore.App para usar explícitamente la versión 2.1.1 de esta manera.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

Esto arregló la crear advertencia y desbloquear todas las versiones de Microsoft.AspNetCore.App en el Gestor de paquetes. Incluso pude eliminar la referencia explícita a Microsoft.Extensions.Logging.Abstractions sin reintroducir el error original. Final .csproj se veía así sin problemas.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  ...
</ItemGroup>
 1
Author: bugged87,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-09 22:32:38

Lo resolví simplemente: Haciendo clic derecho en Proyecto (o ALT + Enter) - > Propiedades - > Aplicación - > Marco de destino (Elija. NET Core framework (en este caso 1.1))

 -1
Author: harlandgomez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-09 09:35:07