在.NET Core和.NET Standard项目中,如果将文件和文件夹放在项目目录中,它们将由Visual Studio自动获取;基本上他们是项目的一部分。
如果我在那里有文件/文件夹并不是项目本身的一部分(在代码或内容方面) - 如果没有完全删除它们,我有什么方法可以将它们从项目中排除,因为我可以使用项目定位完整的.NET Framework?
在Visual Studio中打开项目,然后在解决方案资源管理器中右键单击文件和文件夹。选择Exclude from Project
。
这正是您针对.NET Framework的项目所做的。
您还可以在csproj文件中执行一些操作以确保不会拾取文件:
1)确保没有寻找“项目项”的globbing模式获取文件:
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);your_nonproj.file;a\**\*.pattern</DefaultItemExcludes>
</PropertyGroup>
2)明确删除项目:
<ItemGroup>
<None Remove="hidden.file" />
<Content Remove="wwwroot\lib\**\*" />
</ItemGroup>
请注意,在大型目录(文件数)上,使用带有folder\**
模式的DefaultItemExcludes要快得多,因为msbuild将完全跳过目录。为此使用删除仍然会让msbuild花费相当多的时间来发现文件。
要完成,如果你使用ItemGroup
排除文件夹,那么:
<ItemGroup>
<Content Remove="excluded_folder\**" />
<Compile Remove="excluded_folder\**" />
<EmbeddedResource Remove="excluded_folder\**" />
<None Remove="excluded_folder\**" />
</ItemGroup>
因为,我有一个带有node_modules
文件夹的角项目,该文件夹有很长的路径,VS不断抛出异常。使用<Content Remove="node_modules\**\*" />
不起作用。