如何从.NET Core/Standard项目中排除文件/文件夹?

jk9hmnmh  于 2023-04-22  发布在  .NET
关注(0)|答案(5)|浏览(182)

在.NET Core和.NET Standard项目中,如果将文件和文件夹放在项目目录中,Visual Studio会自动拾取它们;他们基本上是项目的一部分。
如果我有文件/文件夹在那里,并不是真正的项目本身的一部分(在代码或内容方面)-短的完全删除它们,有没有一种方法,我可以排除他们从项目,因为我可以与项目的目标是完整的.NET框架?

chhqkbe1

chhqkbe11#

您还可以在csproj文件中执行一些操作,以确保文件不会被拾取:
1)确保查找“项目项”的globbing模式不会拾取文件:

<PropertyGroup>
  <DefaultItemExcludes>$(DefaultItemExcludes);your_nonproj.file;a\**\*.pattern</DefaultItemExcludes>
</PropertyGroup>

2)显式删除项:

<ItemGroup>
  <None Remove="hidden.file" />
  <Content Remove="wwwroot\lib\**\*" />
</ItemGroup>

请注意,在大目录(文件数量)上,使用DefaultItemExcludes和folder\**模式要快得多,因为msbuild将完全跳过遍历目录。为此使用remove仍然会让msbuild花费相当长的时间来发现文件。

pb3skfrl

pb3skfrl2#

为了完整起见,如果您使用ItemGroup来排除文件夹,则:

<ItemGroup>
  <Content Remove="excluded_folder\**" />
  <Compile Remove="excluded_folder\**" />
  <EmbeddedResource Remove="excluded_folder\**" />
  <None Remove="excluded_folder\**" />
</ItemGroup>

因为,我有一个Angular 项目与node_modules文件夹,其中有非常长的路径和VS不断抛出异常。和使用<Content Remove="node_modules\**\*" />没有工作。

wnavrhmk

wnavrhmk3#

在Visual Studio中打开项目,然后右键单击解决方案资源管理器中的文件和文件夹。选择Exclude from Project
这正是针对.NET Framework的项目所做的事情。

mhd8tkvw

mhd8tkvw4#

如果您希望从编译过程中排除文件但仍将它们保留在解决方案资源管理器树中,则

<ItemGroup>
    <Compile Remove="Templates\**" />
    <Content Include="Templates\**" />
</ItemGroup>

模板是文件夹名称(在本例中),其中的所有内容都将被忽略

4urapxun

4urapxun5#

不幸的是,我发现唯一可行的选择就是排除在项目之外。

相关问题