#asp.net-core #.net-core
#asp.net-core #.net-core
Вопрос:
Как я знаю, согласно документам Microsoft здесь, в Dotnet core ConfigureWebHostDefaults, веб-сервер Kestrel по умолчанию находится внутри проекта.
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
Таким образом, я могу использовать Dotnet Run
в своем основном пути проекта (который содержит .sln) и запускать проект напрямую с помощью Kestrel без IIS Express, и он запускается (как я могу это сделать с IIS Express В VS). Но я хочу знать, есть ли какой-нибудь способ сделать это в моем выпуске (после публикации) на локальном хосте на сервере? Я успешно разместил свой проект с IIS на сервере, и он работает нормально, но из любопытства я запускаю Dotnet run
свой корень публикации, и он возвращает:
Добро пожаловать в .NET Core 3.1! ——————— Версия SDK: 3.1.404
Телеметрия ——— Инструменты .NET Core собирают данные об использовании, чтобы помочь нам улучшить ваш опыт. Оно собирается корпорацией Майкрософт и предоставляется сообществу. Вы можете отказаться от телеметрии, установив для переменной среды DOTNET_CLI_TELEMETRY_OPTOUT значение «1» или «true», используя свою любимую оболочку.
Подробнее о .Телеметрия инструментов CLI NET Core: https://aka.ms/dotnet-cli-telemetry
—————- Изучите документацию: https://aka.ms/dotnet-docs Сообщить о проблемах и найти источник на GitHub: https://github.com/dotnet/core Узнайте, что нового: https://aka.ms/dotnet-whats-new Узнайте больше об установленном сертификате разработчика HTTPS: https://aka.ms/aspnet-core-https Используйте «dotnet —help», чтобы просмотреть доступные команды или посетить: https://aka.ms/dotnet-cli-docs Напишите свое первое приложение: https://aka.ms/first-net-core-app
Ответ №1:
После того, как вы создали проект, вы можете использовать dotnet whatever.dll
команду «выполнить» для исходного кода:
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-run
Команда запуска dotnet используется в контексте проектов, а не построенных сборок. Если вместо этого вы пытаетесь запустить зависящую от платформы DLL-библиотеку приложений, вы должны использовать dotnet без команды. Например, для запуска myapp.dll , использовать:
dotnet myapp.dll
Комментарии:
1. Да, я использовал without . DLL!! Мой плохой.
Ответ №2:
Это зависит от того, как ваш ASP.NET Основное приложение опубликовано. Предполагая, что вам не нужно настраивать таргетинг на определенную платформу, вы можете сначала опубликовать кроссплатформенный двоичный файл, а затем использовать dotnet
его непосредственно в сборке, содержащей вашу основную программу.
В качестве примера, скажем, у вас есть ASP.NET Основное приложение с именем MyApp без каких-либо конкретных настроек в вашем MyApp.csproj
файле проекта. Вы можете опубликовать его, запустив dotnet publish -c Release
его по MyApp.csproj
пути к файлу: опубликованный выпуск будет содержать сборки вашего приложения, в том числе MyApp.dll
и ту, которая содержит вашу основную программу, с которой запускается Kestrel. Из этого расположения вы можете запустить dotnet MyApp.dll
, чтобы запустить свой ASP.NET Основное приложение.