Ответ 1
Откройте проект в Visual Studio и щелкните правой кнопкой мыши файлы и папки в обозревателе решений. Выберите Exclude from Project
.
То, что вы делаете для проектов, ориентированных на .NET Framework.
В проектах .NET Core и .NET Standard, если вы помещаете файлы и папки в каталог проекта, они автоматически подбираются Visual Studio; по сути, они являются частью проекта.
Что делать, если у меня есть файлы/папки, которые на самом деле не являются частью самого проекта (с точки зрения кода или контента) - не удаляя их вообще, есть ли способ, который я могу исключить из проекта, поскольку я может с проектами, нацеленными на полную .NET Framework?
Откройте проект в Visual Studio и щелкните правой кнопкой мыши файлы и папки в обозревателе решений. Выберите Exclude from Project
.
То, что вы делаете для проектов, ориентированных на .NET Framework.
Есть также несколько вещей, которые вы можете сделать в файлах csproj, чтобы убедиться, что файлы не подобраны:
1) Удостоверьтесь, что ни один из шаблонов поиска, которые ищут "элементы проекта", не забирает файлы:
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);your_nonproj.file;a\**\*.pattern</DefaultItemExcludes>
</PropertyGroup>
2) Удалить элементы явно:
<ItemGroup>
<None Remove="hidden.file" />
<Content Remove="wwwroot\lib\**\*" />
</ItemGroup>
Обратите внимание, что в больших каталогах (число файлов) использование DefaultItemExclude с шаблоном \folder ** происходит намного быстрее, поскольку msbuild полностью пропустит обход каталога. использование удаления для этого все еще позволит msbuild потратить некоторое время на поиск файлов.
Для полноты, если вы используете ItemGroup
для исключения папки, то:
<ItemGroup>
<Compile Remove="excluded_folder\**" />
<EmbeddedResource Remove="excluded_folder\**" />
<None Remove="excluded_folder\**" />
</ItemGroup>
Потому что у меня был угловой проект с папкой node_modules
которой были очень длинные пути, и VS продолжал выдавать исключения. И использование <Content Remove="node_modules\**\*"/>
не сработало.