Во-первых, переход на 4.7.1 - это не переход на более раннюю версию, а переход на другую платформу. То, что вам вероятно не нужно делать, если только вы не хотите повторно использовать код для приложения Winforms или WPF.
Пакеты Microsoft.Extensions. * Нацелены на .NET Standard 2.0, а не только на Core, поэтому вы также можете использовать их в полной платформе.
Пакеты и классы также не привязаны к ASP.NET, кроме хостинга. Использую их в консольных приложениях.
Это также означает, что если ваши библиотеки классов нацелены на .NET Standard 2.0, они могут использоваться обеими платформами без изменения целевого объекта. Возможно, вы могли бы переместить большую часть кода в библиотеки .NET Standard 2.0 и оставить только конфигурацию для проектов, специфичных для среды выполнения.
Вам не обязательно нужен хостинг для использования всех других расширений, хотя он предоставляет удобный API, аналогичный коду ASP.NET Core. Вы можете написать свой собственный класс Startup с помощью методов Configure и т. Д. И вызвать их явно. В конце концов, вам нужен доступ к IServiceCollection, чтобы вы могли получать настроенные службы и запускать их.
Вы можете добавить общий . NET с помощью пакета Microsoft.Extensions.Hosting. . Помимо общего API, он добавляет возможность размещать долго работающие службы для проектов, отличных от ASP.NET Core.
Это сообщение в блоге показывает, как вы можете использовать пакет Hosting для создания консольного приложения, которое запускает долго работающую службу, похожую на службу или демон Windows, например:
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 дает более подробную информацию и показывает больше примеров ведения журнала, DI, конфигурации и т. д.
ОБНОВЛЕНИЕ
ASP.NET Core не привязан к .NET Core. Вы также можете использовать его в проектах Full Framework, просто изменив целевую среду выполнения в диалоговом окне создания проекта.
person
Panagiotis Kanavos
schedule
27.07.2018
netcoreapp2.0
наnet471
в файле csproj. Я много использовал это с библиотеками классов, консольными проектами, но еще не с проектами ASP.NET Core. - person Panagiotis Kanavos   schedule 27.07.2018