Я работаю над книгой Head First C # и постоянно сталкиваюсь с проблемами при добавлении ресурсов в окно. Это 100% повторяющаяся ошибка в любом новом приложении WPF, которое я создаю при добавлении нового ресурса. Единственный способ обойти это - закомментировать ресурс, сборку и раскомментирование, как подробно описано в MVCE ниже. Изображения включены в качестве доказательства, это не сценарий "что, если" или теоретический.
Как правильно добавить файл ресурса и использовать его в проекте WPF?
Я использую Visual Studio Community 2017: версия 15.9.9 Целевая среда: .NET Framework 4.6.1
MVCE:
Создание нового приложения WPF. Добавить класс:
//MyDataClass.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace XAMLBuildErrorExample { class MyDataClass { public string Foo { get; set; } } }
В MainWindow.xaml добавить ресурс
<Window x:Class="XAMLBuildErrorExample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:XAMLBuildErrorExample" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Window.Resources> <local:MyDataClass x:Key="exampleResource" /> </Window.Resources> <Grid> </Grid> </Window>
Попытка построить. Ошибка "Тег 'MyDataClass' не существует в пространстве имен XML 'clr-namespace: XAMLBuildErrorExample'. Строка 11, позиция 10.":
Закомментируйте ресурс. Сборка завершена успешно:
Раскомментировать ресурс. Сборка завершается успешно, тогда как раньше она не выполнялась
Любая последующая очистка раствора делает невозможным строительство из-за ошибки на первом изображении.
Кажется, проблема связана с исходным компьютером.
Протестировано на другой рабочей станции VS Community 2017 версии 15.9.11, и сборка прошла без проблем. Сборка> Очистить> Сборка без проблем.