Файл проекта С# - Почему он не представляет, что в моем проекте?

Я пытаюсь понять содержимое файла.csproj после преобразования из PCL в общий. Вот пример и некоторые вопросы:

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

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Xamarin.Forms" Version="3.1.0.583944" />
    <PackageReference Include="sqlite-net-pcl" Version="1.4.118" />
    <PackageReference Include="Syncfusion.Xamarin.SfChart" Version="16.2.0.42" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Views\" />
    <Folder Include="Views\Settings\Pages\" />
    <Folder Include="Views\Home\PopUp\" />
    <Folder Include="Views\Help\Cards\" />
  </ItemGroup>

Может кто-нибудь объяснить мне, почему появляются только определенные папки, хотя мой проект имеет гораздо больше папок

  <ItemGroup>
    <EmbeddedResource Remove="Views\Cards\Category\CategoriesPage.xaml" />
    <EmbeddedResource Remove="Views\Cards\Templates\LinkTextCell.xaml" />
    <EmbeddedResource Remove="Views\Cards\Templates\SwitchViewCell.xaml" />
    <EmbeddedResource Remove="Views\Home\Dictionary.xaml" />
  </ItemGroup>

Может ли кто-нибудь объяснить, что все эти линии удаления делают/означают?

  <ItemGroup>
    <None Include="Views\Cards\Cards.xaml" />
    <None Include="Views\Cards\Category\CategoriesPage.xaml" />
    <None Include="Views\Cards\Category\CategoryViewCell.xaml" />
    <None Include="Views\Cards\Templates\LinkTextCell.xaml" />
    <None Include="Views\Cards\Templates\SwitchViewCell.xaml" />
    <None Include="Views\MainPage.xaml" />
    <None Include="Views\MainPage.xaml" />
    <None Include="Views\MainPage.xaml" />
    <None Include="Views\MainPage.xaml" />
  </ItemGroup>

Может кто-нибудь объяснить, почему MainPage может появиться четыре раза? Нужно ли это не раз, нужно ли вообще? Есть много файлов, которые не входят в список включений? Если только половина есть, то почему?

  <ItemGroup>
    <Compile Update="Views\MainPage.xaml.cs">
      <DependentUpon>MainPage.xaml</DependentUpon>
    </Compile>
    <Compile Update="Views\Home\HomePage.xaml.cs">
      <DependentUpon>HomePage.xaml</DependentUpon>
    </Compile>
    <Compile Update="Views\Cards\Category\CategoryViewCell.xaml.cs">
      <DependentUpon>CategoryViewCell.xaml</DependentUpon>
    </Compile>
  </ItemGroup>
</Project> 

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

Могу ли я просто удалить все эти записи из файла проекта, поскольку, похоже, не слишком много сходства между файлом проекта и папками/файлами в проекте?

Ответы

Ответ 1

В новом формате .csproj есть некоторые основные изменения для упрощения файла. Теперь по умолчанию .vb все файлы .cs (или .vb если вы делаете VB.Net). См. Здесь для получения дополнительной информации.

Причина, по которой ваш файл явно содержит некоторые файлы и папки, заключается в том, что вы, вероятно, в какой-то момент отредактировали свойства файла.

Строки " Remove предназначены для того, чтобы файлы были частью структуры вашего проекта, но не были скомпилированы или внедрены автоматически.

Что касается того, почему MainPage.xaml появляется несколько раз, я понятия не имею. Либо ошибка в Visual Studio добавила их, либо, возможно, конфликт слияния источника управления. В любом случае эти дублированные строки являются избыточными и могут быть удалены.