在新的asp.net 5模板中有一个project.json,您可以在其中排除某些目录.
"exclude": [ "wwwroot","node_modules","bower_components","dist",".tmp" ]
如你所见,我添加了一些文件夹,如’dist’和’.tmp’,但它们仍然包含在解决方案资源管理器中.没有关于这个的很多文档.如何在2015年前从项目中解压缩文件/文件夹?
解决方法
“exclude”属性不会从visual studio隐藏文件夹,它不会使文件夹从解决方案资源管理器“消失”.
“exclude”属性从编译搜索路径中删除该文件夹.编译器(Roslyn)不是IDE的指令.作为一个更全面的答案“project.json”是故意的IDE不可知论.这就是为什么同时包含一个projecname.xspoj和一个project.json,它们都包含项目配置信息.这是必要的,以允许更强大的跨IDE和跨平台开发.
您可以通过简单的练习自己验证此行为.
>添加一个新的类文件(buildfail.cs)到你现有的项目(或
创建一个新项目)在根项目文件夹.
>确保buildfail.cs具有与其他源文件相同的命名空间
项目包含编译错误,并且在根目录下.
>你应该看到VS中的构建错误.如果不手动构建.
>从项目根创建一个新文件夹(excludeme)并移动
buildfail.cs到该文件夹.你还应该有构建错误.
>将excludeme添加到project.json中的exclude属性.应该删除构建错误,因为builfail.cs不再在构建搜索路径中.
您可能想知道什么是VS使用知道从解决方案资源管理器显示隐藏node_packages文件夹.我不确定,它可能不是用户可配置的,但它不是exclude属性.在project.json中注释出node_packages,您将收到构建错误(程序包还原失败),但该文件夹仍将从Solution Explorer中隐藏.由于这是IDE的特定行为,所以我们可以假设它可能在projectname.xproj中定义,但是我发现没有这样的属性,所以在这个时候它似乎是VS的黑盒魔术.