J'ai dû changer mon projet de .NET Core 2.1 en .NET 4.7.1 et j'ai corrigé presque toutes les erreurs sauf les suivantes qui m'échappent encore
'IApplicationBuilder' ne contient pas de définition pour 'UseHsts' et aucune méthode d'extension 'UseHsts' acceptant un premier argument de type 'IApplicationBuilder' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
'IApplicationBuilder' ne contient pas de définition pour 'UseAuthentication' et aucune méthode d'extension 'UseAuthentication' acceptant un premier argument de type 'IApplicationBuilder' n'a pu être trouvée (il vous manque une directive using ou une référence d'assembly?)
'IApplicationBuilder' ne contient pas de définition pour 'UseCookiePolicy' et aucune méthode d'extension 'UseCookiePolicy' acceptant un premier argument de type 'IApplicationBuilder' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
'IApplicationBuilder' ne contient pas de définition pour 'UseHttpsRedirection' et aucune méthode d'extension 'UseHttpsRedirection' acceptant un premier argument de type 'IApplicationBuilder' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
'IApplicationBuilder' ne contient pas de définition pour 'UseSession' et aucune méthode d'extension 'UseSession' acceptant un premier argument de type 'IApplicationBuilder' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
'IApplicationBuilder' ne contient pas de définition pour 'UseStaticFiles' et aucune méthode d'extension 'UseStaticFiles' acceptant un premier argument de type 'IApplicationBuilder' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
'IServiceCollection' ne contient pas de définition pour 'AddAuthentication' et aucune méthode d'extension 'AddAuthentication' acceptant un premier argument de type 'IServiceCollection' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
'IServiceCollection' ne contient pas de définition pour 'AddSession' et aucune méthode d'extension 'AddSession' acceptant un premier argument de type 'IServiceCollection' n'a pu être trouvée (vous manque une directive using ou une référence d'assembly?)
J'utilise Microsoft.AspNetCore.Builder
et Microsoft.Extensions.DependencyInjection
. De quoi d'autre ai-je besoin pour utiliser/installer/ajouter pour que IApplicationBuilder
et IServiceCollection
fonctionnent?
Dans mon fichier WebApi.csproj, j'ai changé le cadre cible de netcoreapp2.1 à net471.
Vieux:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
Nouveau:
<PropertyGroup>
<TargetFramework>net471</TargetFramework>
</PropertyGroup>
Suite à la réponse de Rik, j'ai cherché d'autres packages et j'ai découvert que je devais ajouter tous les packages NuGet suivants:
Microsoft.AspNetCore.Authentication
Microsoft.AspNetCore.Session
Microsoft.AspNetCore.HttpsPolicy
Microsoft.AspNetCore.CookiePolicy
Microsoft.AspNetCore.StaticFiles
Après cela, je n'ai plus reçu de messages d'erreur.
Les erreurs "AddSession" et "UseAuthentication" peuvent être corrigées à l'aide des packages de nuget suivants.
Tout d'abord, le passage à 4.7.1 n'est pas une rétrogradation, il passe à une plate-forme différente. Quelque chose que vous probablement n'avez pas besoin de faire, sauf si vous voulez réutiliser le code pour une application Winforms ou WPF.
Les packages Microsoft.Extensions. * Ciblent .NET Standard 2.0, pas seulement Core, vous pouvez donc également les utiliser dans le cadre complet.
Les packages et les classes ne sont pas non plus liés à ASP.NET, à l'exception de l'hébergement. Je les utilise dans des applications console.
Cela signifie également que si vos bibliothèques de classes ciblent .NET Standard 2.0, elles peuvent être utilisées par les deux plates-formes sans modifier la cible. Vous pouvez peut-être déplacer la plupart du code vers les bibliothèques .NET Standard 2.0 et laisser uniquement la configuration aux projets spécifiques à l'exécution
Vous n'avez pas strictement besoin d'un hébergement pour utiliser toutes les autres extensions, bien qu'il fournisse une API pratique similaire au code ASP.NET Core. Vous pouvez écrire votre propre classe de démarrage avec les méthodes Configure etc et les appeler explicitement. En fin de compte, ce dont vous avez besoin est d'accéder à IServiceCollection afin que vous puissiez obtenir des services configurés et les exécuter.
Vous pouvez ajouter un hôte .NET générique en utilisant le package Microsoft.Exceptions.Hosting . Outre l'API commune, il ajoute la possibilité d'héberger des services de longue durée à des projets non ASP.NET Core.
Ce billet de blog montre comment vous pouvez utiliser le package d'hébergement pour créer une application console qui démarre un service de longue durée, similaire à un service ou un démon Windows, par exemple:
public static async Task Main(string[] args)
{
var hostBuilder = new HostBuilder()
.ConfigureServices((hostContext, services) =>
{
services.AddSingleton<IBusControl>(serviceProvider =>
{
return MassTransit.Bus.Factory.CreateUsingRabbitMq(cfg =>
{
var Host = cfg.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username("guest");
h.Password("guest");
});
});
});
services.AddScoped<IHostedService, MassTransitHostedService>();
});
await hostBuilder.RunConsoleAsync();
}
. NET Generic Host va plus en détail et montre plus d'exemples de journalisation, DI, configuration, etc.
[~ # ~] mise à jour [~ # ~]
ASP.NET Core n'est pas lié à .NET Core. Vous pouvez également l'utiliser dans des projets Full Framework, simplement en modifiant le temps d'exécution cible dans la boîte de dialogue Création de projet