Mam małą aplikację WPF, która kiedyś dobrze się kompilowała, ale już nie jest. Nie mogę powiedzieć, w którym momencie przestał się budować. Po prostu działało dobrze jednego dnia, a następnego nie.
Oto struktura projektu:
Nie ma innych projektów ani odniesień zewnętrznych poza standardowymi bibliotekami dll .net.
Oto kontrola użytkownika, z której pochodzi problem:
<UserControl x:Class="TimeRecorder.HistoryUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:TimeRecorder.ViewModel"
xmlns:framework="clr-namespace:TimeRecorder.Framework"
mc:Ignorable="d" Height="Auto" Width="Auto" Padding="5">
<UserControl.Resources>
<local:HistoryViewModel x:Key="ViewModel"/>
<framework:BoolToColorConverter x:Key="ColorConverter"/>
</UserControl.Resources>
<StackPanel DataContext="{StaticResource ViewModel}">
A oto błąd, który otrzymuję:
Zwróć uwagę, że nie jest to tylko jeden plik na zrzucie ekranu, ale wszystkie odniesienia, które dodaję w podobny sposób w xaml we wszystkich plikach kontroli użytkownika / okien w tym projekcie.
Więc plik tam jest, przestrzeń nazw w pliku jest poprawna, przestrzeń nazw / nazwa klasy w pliku xaml jest (w moim rozumieniu) poprawna. Dostaję intelisense, kiedy piszę xaml, więc znajduje pliki w porządku, ale nie podczas kompilacji.
Najpopularniejszym rozwiązaniem tego problemu w innych postach była wersja platformy .net. Obecnie jest ustawiony na .Net Framework 4 zarówno dla mojego projektu głównego, jak i testowego. Pełna wersja, a nie profil klienta.
Oto, co myślę, że zawiodłem: w menedżerze konfiguracji oba projekty mają platformę ustawioną na Dowolny procesor, ale w pewnym momencie, próbując rozwiązać ten problem, zauważyłem, że główny projekt był ustawiony na x86, a projekt testowy na Any PROCESOR. Więc dodałem ręcznie Any CPU dla głównego projektu w menedżerze konfiguracji. Jednak szczerze mówiąc nie wiem, czy zrobiłem to poprawnie, czy nawet powinienem to zrobić. Więc jako dodatkowe pytanie, czy jest sposób, aby zresetować menedżera konfiguracji do jego domyślnego stanu? Czy będzie to miało coś do powiedzenia na temat głównego problemu? Nie wiem, czy główny projekt był zawsze ustawiony na x86, czy nie, czy też w jakiś sposób zmieniłem go na x86, a potem się zepsuł. Jak wspomniano, ten projekt przez chwilę dobrze się kompilował.