Как включить консоль в приложении WPF .NET Core? - PullRequest
0 голосов
/ 27 сентября 2019

Я пробую WPF .NET Core впервые, и одна из вещей, которые я всегда делаю в новом проекте WPF .NET Framework, - включаю консоль, но при попытке сделать это я получаю сообщение об ошибкев .NET Core.

В традиционном WPF, ориентированном на .NET Framework, это было довольно просто;

  • Установите для действия сборки для App.xaml значение Page
  • Определите метод Main где-нибудь и пометьте его с помощью STAThreadAttribute
  • . В настройках проекта установите тип вывода Console Application и установите для объекта Startup значение, куда вы помещаете метод Main

Я повторил эти шаги в WPF .NET Core, но я получаю сообщение об ошибке при попытке изменить действие сборки для App.xaml

Ошибка (возникает сразу после выбора страницы в раскрывающемся списке вОкно свойств):

An error has occurred while saving the edited properties listed below:
    Build Action
One or more values are invalid. 
Cannot add 'App.xaml' to the project, because the path is explicitly excluded from the project 
(C:\Program Files\dotnet\sdk\3.0.100\Sdks\Microsoft.NET.Sdk.WindowsDesktop\targets\Microsoft.NET.Sdk.WindowsDesktop.targets (45,5)).

Кто-нибудь знает способ обойти это или другой способ включить консоль в WPF .NET Core?

1 Ответ

0 голосов
/ 27 сентября 2019

После некоторых проб и ошибок я выяснил, что файл .csproj испортился.Я не знаю, как именно это пошло не так, я подозреваю, что это было связано с редактированием проекта через окно свойств в этой версии VS2019.

Я отредактировал .csproj вручную, и он работает, если онвыглядит следующим образом:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
    <ApplicationIcon />
    <StartupObject>ProjectName.App</StartupObject>
  </PropertyGroup>

  <ItemGroup>
    <Page Include="App.xaml"></Page>
  </ItemGroup>

  <ItemGroup>
    <ApplicationDefinition Remove="App.xaml"></ApplicationDefinition>      <--- key part
  </ItemGroup>

</Project>

Я проверил файл .csproj для работающего проекта .NET Framework, и ключ, кажется, вручную удаляет App.xaml как ApplicationDefinition, как это сделал .NET Framework .csprojнет этого раздела в нем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...