在 Visual Studio 的解决方案资源管理器中隐藏一些文件

栏目: 编程工具 · 发布时间: 6年前

内容简介:项目文件中有一些属性几乎是专门为 IDE 而准备的,不过考虑到 .NET 生态的开发者多数都使用 Visual Studio,所以基本上也只有 Visual Studio 对这些特性支持的最全面。(才不会透漏这些属性其实本就是为 Visual Studio 而准备的呢。)本文将介绍如何在 Visual Studio 的解决方案资源管理器中隐藏一些文件。Visual Studio 原生支持

项目文件中有一些属性几乎是专门为 IDE 而准备的,不过考虑到 .NET 生态的开发者多数都使用 Visual Studio,所以基本上也只有 Visual Studio 对这些特性支持的最全面。(才不会透漏这些属性其实本就是为 Visual Studio 而准备的呢。)

本文将介绍如何在 Visual Studio 的解决方案资源管理器中隐藏一些文件。

原生支持

Visual Studio 原生支持 Visible 属性用来控制某一项文件是否在 Visual Studio 的解决方案资源管理器中显示。具体来说,是这样设置的:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
    <EnableDefaultItems>false</EnableDefaultItems>
  </PropertyGroup>
  <ItemGroup>
    <Compile Include="**\*.cs" Exclude="obj\**\*.cs" Visible="false" />
  </ItemGroup>
</Project>

好了,任务完成,全文结束!

要是只有这样,我才不会写这篇文章呢!

原生不支持

在 Visual Studio 的解决方案资源管理器中隐藏一些文件

考虑一下像上图那样有些文件在文件夹中的情况,然后我们再次设置 Visible="false" 属性:

在 Visual Studio 的解决方案资源管理器中隐藏一些文件

文件夹竟然还在!这是 Visual Studio 的 Bug 吗?

还真是,至少在 Visual Studio 的项目系统中就有这样的 Issue 处于打开的状态:

回复是:

Yes this is a known issue. We are discussing options to resolve it over here dotnet/roslyn-project-system#1233

好吧,那就等着解决吧!不过等大家的 Visual Studio 更新到解决的版本还需要很久吧。

变通解决

所以,我们只好采取其他手段来解决,最容易想到的是编写一个 <Target />

<Target Name="IncludeSourceCodes" BeforeTargets="CoreCompile">
  <ItemGroup>
    <Compile Include="**\*.cs" Exclude="bin\**\*.cs;obj\**\*.cs;" />
  </ItemGroup>
</Target>

这样,引入这些文件就是通过在编译时才引入的。没有开始编译时,项目中自然看不见。

在 Visual Studio 的解决方案资源管理器中隐藏一些文件

如果这样的例子发生在制作的 NuGet 包中,那么这个文件可能在 NuGet 包中的路径是 /build/Walterlv.Demo.targets;为了引用额外的源码,我们可以加上额外的路径信息:

<Target Name="IncludeSourceCodes" BeforeTargets="CoreCompile">
  <ItemGroup>
    <Compile Include="$(MSBuildThisFileDirectory)..\src\**\*.cs" Exclude="$(MSBuildThisFileDirectory)..\src\bin\**\*.cs;$(MSBuildThisFileDirectory)..\src\obj\**\*.cs;" />
  </ItemGroup>
</Target>

活学活用

这并不是说在 Visual Studio 的解决方案资源管理器中,隐藏文件都应该采用 <Target /> 来做,毕竟这样太复杂了。如果没有太复杂的要求,直接些 Visible="false" 也未尝不可。

比较复杂的情况可能比如:

参考资料

本文会经常更新,请阅读原文: https://walterlv.github.io/post/make-items-invisible-in-vs-solution-explorer.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

在 Visual Studio 的解决方案资源管理器中隐藏一些文件 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://walterlv.github.io ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Google软件测试之道

Google软件测试之道

James A. Whittaker、Jason Arbon、Jeff Carollo / 黄利、李中杰、薛明 / 人民邮电出版社 / 2013-10 / 59.00元

每天,google都要测试和发布数百万个源文件、亿万行的代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行。面对这些看似不可能完成的任务,谷歌是如何测试的呢? 《google软件测试之道》从内部视角告诉你这个世界上知名的互联网公司是如何应对21世纪软件测试的独特挑战的。《google软件测试之道》抓住了google做测试的本质,抓住了google测试这个时代最......一起来看看 《Google软件测试之道》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具