Управление Содержимым Проекта В Visual Studio

Скачать

🧭 Управление содержимым проекта в Visual Studio

📂 Почему файлы не отображаются в Solution Explorer?

Когда ты добавляешь файл в папку проекта через проводник Windows, Visual Studio не увидит его автоматически, пока ты не:

  • Обновишь (Refresh) структуру проекта в Solution Explorer
  • Или вручную добавишь файл в проект

🔄 Как обновить проект в Visual Studio

✅ Вариант 1: Обновить вручную

  1. Solution Explorer → ПКМ по проекту
  2. Выбери "Add" → "Existing Item..."
  3. Найди файл и добавь его

✅ Вариант 2: Обновить проводник

  1. ПКМ по проекту → "Reload Project"

  2. Или нажми кнопку "Show All Files" (иконка сверху в Solution Explorer)

Теперь ты увидишь все физические файлы на диске (включая не включённые в .csproj).
Файлы, не добавленные в проект, отображаются прозрачными.

  1. ПКМ по нужному файлу → "Include In Project"

⚙ Как Visual Studio решает, что включить в проект?

Если ты используешь SDK-стиль .csproj (начиная с .NET Core и .NET 5+), то большинство файлов включаются автоматически:

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

Visual Studio по умолчанию включает:

  • .cs, .resx, .cshtml, .json — если они лежат в папке проекта
  • Исключения: файлы и папки, явно исключённые или находящиеся в bin/, obj/, .git/ и пр.

🚫 Как исключить файлы/папки из проекта

Даже в SDK-стиле ты можешь исключить определённые файлы вручную:

<ItemGroup>
  <Compile Remove="Temp/UnusedFile.cs" />
  <None Remove="Notes/Todo.txt" />
</ItemGroup>

Или:

<ItemGroup>
  <Compile Include="MyFolder/**/*.cs" Exclude="MyFolder/Temp/*.cs" />
</ItemGroup>

🛠 Варианты добавления и настройки файлов

Действие Где в VS / Что делать
Добавить новый файл ПКМ по проекту → Add → New Item
Добавить существующий файл ПКМ по проекту → Add → Existing Item
Исключить файл из сборки ПКМ по файлу → Properties → Build Action: None
Копировать файл в output ПКМ по файлу → Properties → Copy to Output Directory
Исключить файл из проекта ПКМ по файлу → Remove
Удалить файл физически ПКМ по файлу → Delete
Показать все файлы В Solution Explorer — кнопка "Show All Files"
Добавить файл из проводника ПКМ по файлу → Include In Project

🧩 Дополнительно: что на самом деле делает Visual Studio?

  • Visual Studio редактирует .csproj автоматически, когда ты добавляешь или удаляешь файлы через GUI.
  • Если ты включил SDK-стиль, то <Compile> для *.cs больше не нужен — всё подтягивается автоматически.
  • Если проект не SDK-стиль (например, старые .NET Framework проекты), тогда каждый файл явно прописывается в .csproj.

🧰 Продвинутая работа

Ты можешь делать кастомные группы:

<ItemGroup>
  <Content Include="Docs/*.md">
    <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  </Content>
</ItemGroup>

Или управлять логикой:

<ItemGroup Condition="'$(Configuration)' == 'Debug'">
  <None Include="debug_config.json" CopyToOutputDirectory="PreserveNewest" />
</ItemGroup>

🧼 Практические советы

  1. 🔁 Добавил файл через Проводник? — обязательно нажми "Show All Files" и "Include In Project".
  2. 🔄 Файл не копируется при сборке? — проверь Copy to Output Directory в свойствах.
  3. 🧠 SDK-стиль проектов избавляет от необходимости явно добавлять *.cs файлы.
  4. 📂 Структура проекта в Solution Explorer — не физическая структура: она отражает структуру .csproj, а не обязательно структуру папок.