如何在 VS2015 中按名称从解决方案资源管理器中隐藏文件?

Posted

技术标签:

【中文标题】如何在 VS2015 中按名称从解决方案资源管理器中隐藏文件?【英文标题】:How can I hide files from Solution Explorer by name in VS2015? 【发布时间】:2015-05-11 18:42:08 【问题描述】:

我正在使用 ASP.NET 预览模板在 VS2015 中编写一个网站。不幸的是,Dropbox 在我的项目的每个文件夹中添加了一堆 .dropbox.attr 文件,解决方案资源管理器正在显示这些文件:

请注意,我没有手动将它们添加到项目中,(我的Web.xproj 中没有引用它们)并且我没有选择“显示所有文件”。我已经将它们添加到我的.gitignore。选择文件时没有“删除”选项:

最后,我尝试将它们添加到我的 project.json 的排除部分:

...

"publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc",
    ".dropbox.attr"
],

"exclude": [
    "wwwroot",
    "node_modules",
    "bower_components",
    ".dropbox.attr"
]

...

有没有办法让所有具有此名称的文件不出现在我的解决方案资源管理器中?

我不确定 VS2015 和新项目结构之间的确切交互,所以它可能是这些因素中的任何一个的结果。

【问题讨论】:

新的 ASP.NET 5 项目不保存文件列表,因此应用程序不会依赖于其他平台上的项目文件。话虽如此,必须有一种方法可以隐藏某些文件夹,因为 .git 不会显示为解决方案项,并且像 bower_components 这样的文件夹会被解释为解决方案资源管理器中的自定义节点... 正如@CuddleBunny 所说,解决方案资源管理器将自动显示项目文件夹中的所有文件。这是设计使然。您可能需要查看 this page 以了解为什么(并阻止)Dropbox 首先创建这些 attr 文件。 希望我们能尽快获得排除文件夹选项 【参考方案1】:

您可以修改项目的 .xproj 文件并添加以下内容以排除文件夹:

<ItemGroup>
    <DnxInvisibleFolder Include="wwwroot\jspm_packages\" />
    <DnxInvisibleFolder Include="wwwroot\node_modules\" />

    <DnxInvisibleContent Include="wwwroot\tsd.json" />
</ItemGroup>

您可以将DnxInvisibleFolder 用于文件夹,将DnxInvisibleContent 用于文件。 某些文件夹(如 node_modules)有时有数千个文件夹/文件,这似乎是 VS2015 扫描和加载的主要问题。

【讨论】:

你是昆虫中的神。 @Cornelliu 是否也可以隐藏一种类型的所有文件?例如wwwroot\**\*.js ?【参考方案2】:

在 Visual Studio 2015 的 DNX 项目中,解决方案资源管理器不使用 project.json 来确定显示的内容。 dnx 使用 project.json 中的“排除”属性来确定应从编译或发布中排除哪些文件夹/文件,但这不会影响 Visual Studio 的解决方案资源管理器。

一般来说,“一切”都会显示出来,但这并不完全正确,因为 VS 不包括某些文件夹(例如 .git、.vs、工件等)。它还添加了其他组件(即默认情况下从编译中排除 Bower 组件,但 VS 将其添加回依赖项下的元文件夹)。 解决方案资源管理器的“过滤器”不向用户公开,因此无法通过配置文件进行编辑或更改。

最好的办法是通过用户语音请求添加某种配置方法。确实,功能已经存在,只需要用户自定义即可。

【讨论】:

【参考方案3】:

使用最新的 Visual Studio,您只需右键单击文件夹/文件并选择“从解决方案资源管理器中隐藏”。

这将像 Corneliu 之前写的那样改变“xproj”:

<ItemGroup>
    <DnxInvisibleFolder Include="wwwroot\" />
</ItemGroup>

【讨论】:

以上是关于如何在 VS2015 中按名称从解决方案资源管理器中隐藏文件?的主要内容,如果未能解决你的问题,请参考以下文章

VS2015如何连接mySQL数据库图文

vs2015怎么连接mysql

visual stdio2015里解决方案管理器窗口隐藏后怎么恢复

在 Java 中按名称排序文件与 Windows 资源管理器不同

vs2005 开发的WEB项目如何发布到IIS上

保存后,文件从VS 2015解决方案中消失