Можно ли подключить xaml.cs к соответствующему xaml в формате VS2017 csproj? - PullRequest
0 голосов
/ 16 января 2019

Из-за огромных преимуществ в упаковке NuGet я преобразовал файл csproj библиотеки C # в новый формат Visual Studio 2017, как описано здесь: Старый csproj до нового csproj: руководство по обновлению Visual Studio 2017 .

Теперь все файлы xaml.cs и xaml моего пользовательского элемента управления WPF отображаются отдельно друг от друга, а не в виде структуры (xaml.cs "внутри" xaml). Дополнительно я не могу переключаться между ними с помощью команд контекстного меню «Просмотр кода» или «Просмотр конструктора».

Я обнаружил, что могу решить структурное отображение с помощью добавления соответствующих записей в файл csproj:

<Compile Include="SomeView.xaml.cs">
  <DependentUpon>SomeView.xaml</DependentUpon>
</Compile>

После сохранения файла csproj требуется секунда или две, а затем два элемента визуально структурируются в представлении проводника проекта. Я все еще не могу переключаться между ними с помощью команд контекстного меню.

Кроме того, я получаю ошибку NETSDK1022 при компиляции, говоря о том, что эти элементы компиляции теперь дублируются (новый формат проекта автоматически добавляет все подходящие файлы). Этот механизм можно отключить, установив EnableDefaultCompileItems в false, который работает.

Есть ли лучший способ "связать" xaml и его файл с выделенным кодом для нового формата проекта VS2017?

(возможно, это одна из проблем, почему новый формат проекта еще не выпущен для оконных проектов ...)

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Заменить Include на Update.

Начиная с вашей точки

новый формат проекта автоматически добавляет все подходящие файлы

, потому чтоЭту точку обычно предпочитают использовать Update вместо Include.Именно это.

Если все файлы включены по умолчанию, то при использовании слова «Включить» вы добавляете файл, который уже существует.Но если вы используете слово «Обновить», вы обновите уже включенный файл.

0 голосов
/ 16 января 2019

Я не думаю, что переключение на новый формат проекта официально поддерживается для проектов WPF, нацеленных на .NET Framework. Это будет поддерживаться в Visual Studio 2019, когда вы ориентируетесь на .NET Core 3.

Существует новый Microsoft.NET.Sdk.WindowsDesktop SDK, который создает проекты .NET Core WPF, включая файлы XAML, с использованием следующего минимального файла .csproj, доступного в preview :

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
    <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>netcoreapp3.0</TargetFramework>
        <UseWPF>true</UseWPF>
    </PropertyGroup>
</Project>

Пожалуйста, обратитесь к этому сообщению в блоге для получения дополнительной информации.

...