在新的asp.net 5模板中有一个project.json,你可以在其中排除某些目录。
"exclude": [
"wwwroot",
"node_modules",
"bower_components",
"dist",
".tmp"
]
正如您所看到的,我添加了一些文件夹,例如'dist'和'.tmp',但它们仍然包含在解决方案资源管理器中。关于这个的文档并不多。如何在vs 2015中从项目中删除文件/文件夹?
答案 0 :(得分:14)
“exclude”属性不会隐藏Visual Studio中的文件夹,也不会使文件夹从解决方案资源管理器中“消失”。
“exclude”属性从编译搜索路径中删除该文件夹。它是对编译器(Roslyn)而不是IDE的指令。作为一个更全面的答案,“project.json”是故意IDE不可知的。这就是为什么projecname.xspoj和project.json都包含项目配置信息的原因。这对于实现更强大的跨IDE和跨平台开发是必要的。
您可以使用简单的练习自行验证此行为。
您可能想知道VS使用什么来隐藏解决方案资源管理器显示中的node_packages文件夹。我不确定,它可能不是用户可配置的,但它不是排除属性。注释掉project.json中的node_packages,你会得到构建错误(包恢复失败),但仍然会从解决方案资源管理器中隐藏该文件夹。由于这是IDE特定的行为,人们可能会认为它可能是在projectname.xproj中定义的,但是我没有发现这样的属性,所以此时它似乎是VS的黑盒魔术。
答案 1 :(得分:5)
从Asp.Net 5 beta-8 以及Visual Studio 2015的补充工具更新,您现在可以排除/隐藏在解决方案资源管理器中显示的文件夹。 announcement post概述了有关此更多信息以及其他更改。要隐藏文件或文件夹,请右键单击以显示上下文菜单,然后选择Hide from solution explorer
。这会在.xproj
文件中创建一个条目:
<ItemGroup>
<DnxInvisibleContent Include="myhiddenfile.txt" />
</ItemGroup>
另请注意,默认情况下,bower软件包的安装位置发生了变化。以前,Visual Studio中的Asp.Net 5模板会将bower软件包安装到名为bower_components
的文件夹中,这种做法对于不使用Visual Studio的Web开发人员来说很熟悉。但是,显然由于开发人员的混淆,这已经改为wwwroot/lib
。可以通过编辑bowerrc
文件来更改此设置。因此,新的beta-8模板中不存在bower_components
文件夹。有关详细信息,请参阅Scott Hanselman撰写的this post。
答案 2 :(得分:3)
这可能不太理想,但我能够通过在Windows资源管理器属性对话框中将文件夹标记为隐藏来隐藏Asp.net 5项目中解决方案资源管理器中的文件夹。我将WebStorm使用的.idea文件夹显示出来,因此它被隐藏起来并不算太大。 WebStorm并不介意。
如果文件夹已经存在于解决方案资源管理器中,则该文件夹似乎不会被隐藏。标记它并隐藏它的内容并将其暂时移出项目文件夹。在将其移回之前,请确保它从解决方案资源管理器中消失。它不应该显示回来。重新启动Visual Studio也可以工作,我没有测试过。
答案 3 :(得分:1)
无论是对还是错,这都是我为了让bower_components
和.sass-cache
摆脱困境而采取的措施。在我的情况下,node_modules
已经以某种方式被排除在我的项目之外,即使它与gruntfile.js
处于同一级别。我仍然不明白为什么它被区别对待。有人知道吗?
首先,我在.bowerrc
文件中设置我的位置:
{
"directory": "../../artifacts/bower_components"
}
然后我在gruntfile.js
此外,为了让sass-cache
文件夹不受影响,因为我使用grunt-contrib-compass
,我使用此选项配置了指南针任务:
cacheDir: '../../artifacts/.sass-cache',
如果您使用其他sass /指南针工具,还有其他方法可以执行此操作。
<强>结果:强>
bower_components
和.sass-cache
超出了源代码管理范围。答案 4 :(得分:1)
使用最新的Visual Studio,您只需右键单击文件夹/文件,然后选择“从解决方案资源管理器中隐藏”。
这会以这种方式改变“xproj”:
<ItemGroup>
<DnxInvisibleFolder Include="wwwroot\" />
</ItemGroup>
答案 5 :(得分:0)
使用visual studio 2015查看asp.net 5的状态我只能说他们使用像gulp或grunt这样的任务运行者变得更加困难和不方便。由于我使用Web API 2来管理我的数据,因此我使用bower,gulp和browsersync切换到Visual Studio Code,这已被证明是更简单,更快速,而且杂乱少得多。
制作启动模板:https://github.com/Swiip/generator-gulp-angular
现在您可以使用任何编辑器,您可以清楚地分离前端和后端开发。另外,你可以了解gulp和bower以及VS2015试图为你做的(最小)命令行内容(并且没有多次这样做)。
哦,是的:你不必再排除文件夹了,因为模板有更明智的文件夹结构