Is it possible to hide files/folders in .net core csproj without excluding them from build? I have a folder containing generated files which I would rather see they are not visible inside Solution Explorer in Visual Studio.
Hide files in .csproj without excluding them from build
Asked Answered
You can set the Visible="false"
attribute on the items.
For an SDK-based project (.net core / asp.net core templates), you could add e.g.:
<ItemGroup>
<Content Update="**/*.css" Visible="false" />
</ItemGroup>
Depending on your project type (=> defaults), you might have to replace Content
with None
for the particular type, or even Compile
for generated code files.
Is it possible to hide folder too? This hides all files in folder Generated, but the empty folder is still visible... <Compile Update="Generated\**" Visible="false" /> –
Gildus
To my knowledge, this is not possible. Many new tools try to autogenerate into
obj
($(BaseIntermediateOutputPath)
) and include the items during the build and not as static ("root level") items using the Link
metadata... But yes I also have stray dist
/ css
folders etc. –
Insignificant I find that setting Visible to false means that VS will not trigger a build if one of these files changes. developercommunity.visualstudio.com/content/problem/140935/… –
Bk
Is this supposed to work with .Net Core projects? I added the
Visible
tag and the file still shows in solution explorer. –
Archpriest For NetCore and NetStandard It would not work for me unless I used None.
<None Remove="**/*.asmdef" Visible="false"/>
–
Politic @CodieMorgan there is a difference between hiding files and removing them from the project.
<None Remove="..
excludes files from the project (for which you don't need a Visible
attribute). –
Insignificant By me it isn't available as attribute only as an element <Visible>False</visible> –
Hunnish
Thanks to Martin answer, I found a way to apply it to a whole folder using **\**
. For example for an ASP.NET Core wwwroot\Scripts
folder which contains files compiled by TypeScript (TypeScriptCompile
):
<ItemGroup>
<TypeScriptCompile Update="wwwroot\Scripts\**\**" Visible="False" />
<Content Update="wwwroot\Scripts\**\**" Visible="False" />
</ItemGroup>
As his answer noted, you can add more type in there like None
.
© 2022 - 2024 — McMap. All rights reserved.