У меня есть проект WPF, который я хотел бы создать и запустить из командной строки вместо Visual Studio. Это можно сделать с помощью команды dotnet run из папки проекта, но журналы отладки не выводятся на консоль.
Как предлагает cs:
using System.Windows;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespace YourNamespace
{
public partial class App : Application
{
public static IServiceProvider ServiceProvider { get; private set; }
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
var serviceCollection = new ServiceCollection();
ConfigureServices(serviceCollection);
ServiceProvider = serviceCollection.BuildServiceProvider();
var logger = ServiceProvider.GetRequiredService<ILogger<App>>();
logger.LogInformation("Application started in Debug mode.");
}
private void ConfigureServices(IServiceCollection services)
{
services.AddLogging(configure =>
{
configure.ClearProviders(); // Clear default providers
configure.AddConsole(); // Add console logging
}).Configure<LoggerFilterOptions>(options =>
{
options.MinLevel = LogLevel.Debug; // Set minimum log level to Debug
});
}
}
}
У меня установлены все необходимые пакеты NuGet, и программа запускается. Вывода журнала просто нет.
Отвечает ли это на ваш вопрос? Нет вывода на консоль из приложения WPF?
Мне нужно было изменить WinExe на Exe в моем файле .csproj. Это решило проблему.
Установите точку останова в
ConfigureServices
— она когда-нибудь срабатывает во время запуска? Если нет, то ваш проект, вероятно, не использует типApp.xaml
для методаMain
.