在.NET Core和.NET Standard项目中,如果将文件和文件夹放在项目目录中,Visual Studio会自动拾取它们;他们基本上是项目的一部分。如果我有文件/文件夹在那里,并不是真正的项目本身的一部分(在代码或内容方面)-短的完全删除它们,有没有一种方法,我可以排除他们从项目,因为我可以与项目的目标是完整的.NET框架?
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花费相当长的时间来发现文件。
folder\**
pb3skfrl2#
为了完整起见,如果您使用ItemGroup来排除文件夹,则:
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\**\*" />没有工作。
node_modules
<Content Remove="node_modules\**\*" />
wnavrhmk3#
在Visual Studio中打开项目,然后右键单击解决方案资源管理器中的文件和文件夹。选择Exclude from Project。这正是针对.NET Framework的项目所做的事情。
Exclude from Project
mhd8tkvw4#
如果您希望从编译过程中排除文件但仍将它们保留在解决方案资源管理器树中,则
<ItemGroup> <Compile Remove="Templates\**" /> <Content Include="Templates\**" /> </ItemGroup>
模板是文件夹名称(在本例中),其中的所有内容都将被忽略
4urapxun5#
不幸的是,我发现唯一可行的选择就是排除在项目之外。
5条答案
按热度按时间chhqkbe11#
您还可以在csproj文件中执行一些操作,以确保文件不会被拾取:
1)确保查找“项目项”的globbing模式不会拾取文件:
2)显式删除项:
请注意,在大目录(文件数量)上,使用DefaultItemExcludes和
folder\**
模式要快得多,因为msbuild将完全跳过遍历目录。为此使用remove仍然会让msbuild花费相当长的时间来发现文件。pb3skfrl2#
为了完整起见,如果您使用
ItemGroup
来排除文件夹,则:因为,我有一个Angular 项目与
node_modules
文件夹,其中有非常长的路径和VS不断抛出异常。和使用<Content Remove="node_modules\**\*" />
没有工作。wnavrhmk3#
在Visual Studio中打开项目,然后右键单击解决方案资源管理器中的文件和文件夹。选择
Exclude from Project
。这正是针对.NET Framework的项目所做的事情。
mhd8tkvw4#
如果您希望从编译过程中排除文件但仍将它们保留在解决方案资源管理器树中,则
模板是文件夹名称(在本例中),其中的所有内容都将被忽略
4urapxun5#
不幸的是,我发现唯一可行的选择就是排除在项目之外。