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

How can I hide files from Solution Explorer by name in VS2015?

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

请注意,我没有手动将它们添加到项目中(我的 Web.xproj 中没有引用它们)并且我没有选择 "Show All Files"。我已经将它们添加到我的 .gitignore。选择文件时没有"Remove"选项:

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

...

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

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

...

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

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

在 visual Studio 2015 年的一个 DNX 项目中,解决方案资源管理器不使用 project.json 来确定显示的内容。 project.json 中的 "exclude" 属性由 dnx 用来确定哪些 folders/files 应该从编译或发布中排除,但这不会影响 Visual Studio 的解决方案资源管理器。

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

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

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

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

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

您可以对文件夹使用 DnxInvisibleFolder,对文件使用 DnxInvisibleContent。 某些文件夹(如 node_modules)有时有数千个 folders/files,这似乎对 VS2015 扫描和加载造成了重大问题。

使用最新的 Visual Studio,您只需右键单击 folder/file 并选择 "Hide from Solution Explorer"。

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

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