Предупреждение-Родительский файл ' Viewsfile.xaml', для файла ' Viewsfile.код XAML.cs ' не может быть найден в файле проекта


Прежде всего, я посмотрел на другие связанные сообщения на StackOverflow.com и изменение пути в файле csproj не имело никакого значения в этом предупреждении, как вы увидите ниже. Ссылка: Почему я получаю это предупреждение .cs-файл не может быть найден в файле проекта А также: Как я могу соединить xaml и xaml.cs-файлы

У меня есть то, что составляет главное окно.xaml и MainWindow.код XAML.CS. Я решил переместить их оба в папку Views, потому что мне не понравилась моя папка. вид главного окна, плавающий вокруг с файлом csproj и приложением.xaml / App.код XAML.файлы cs.

В основном:

Виды / Главное Окно.xaml

Виды / Главное Окно.код XAML.cs

Итак, мой первый вопрос: разве это не разрешено? Мы обязаны иметь главное окно.xaml и MainWindow.код XAML.файлы cs должны находиться в том же месте, что и файл csproj?

Второй вопрос: если нет, то что еще я упускаю, потому что я уверен, что все пути установлены правильно?

<Page Include="ViewsTimersHost.xaml">
  <Generator>MSBuild:Compile</Generator>
  <SubType>Designer</SubType>
</Page>
  <Compile Include="ViewsTimersHost.xaml.cs">
  <DependentUpon>ViewsTimersHost.xaml</DependentUpon>
  <SubType>Code</SubType>
</Compile>

Я даже поместите их в те же теги, чтобы не было места для путаницы со стороны компилятора, но он все равно жалуется с предупреждением: Родительский файл, ' ViewsTimersHost.xaml', для файла ' ViewsTimersHost.код XAML.cs ' не может быть найден в файле проекта.

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

Например, в этом посте упоминалось, что главное окно.xaml следует поместить в папку Views, что я и пытаюсь сделать: структура проекта для MVVM в WPF

Так что я почти уверен, что я просто что-то упускаю, но понятия не имею, что это может быть или где даже начать искать. Даже мой StartupUri в приложении.xaml настроен правильно, чтобы указать на файл:
<Application 
x:Class="TimersXP.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="Views/TimersHost.xaml"
/>

Может быть, в Тимершост.xaml файл мне нужно указать путь к классу? Х:Класс="вид/TimersXP.TimersHost"....Нет, это не имеет смысла, и не сработает в любом случае.

Это проект с открытым исходным кодом, так что вот полный источник файла csproj: http://timersxp.codeplex.com/SourceControl/latest#VS2013/TimersXP/TimersXP.csproj (последняя версия актуальна)

1 2

1 ответ:

Не проверив это, мой ответ является спекулятивным. Однако:

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

<DependentUpon>TimersHost.xaml</DependentUpon>