在project.json中排除文件夹

Elg*_*des 12 asp.net visual-studio-2015

在新的asp.net 5模板中有一个project.json,你可以在其中排除某些目录.

"exclude": [
    "wwwroot",
    "node_modules",
    "bower_components",
    "dist",
    ".tmp"
]
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我添加了一些文件夹,例如'dist'和'.tmp',但它们仍然包含在解决方案资源管理器中.关于这个的文档并不多.如何在vs 2015中从项目中删除文件/文件夹?

Ger*_*vis 14

"exclude"属性不会隐藏Visual Studio中的文件夹,也不会使文件夹从解决方案资源管理器中"消失".

"exclude"属性从编译搜索路径中删除该文件夹. 它是对编译器(Roslyn)而不是IDE的指令.作为一个更全面的答案,"project.json"是故意IDE不可知的.这就是为什么projecname.xspoj和project.json都包含项目配置信息的原因.这对于实现更强大的跨IDE和跨平台开发是必要的.

您可以使用简单的练习自行验证此行为.

  1. 在根项目文件夹中将新类文件(buildfail.cs)添加到现有项目(或创建新项目).
  2. 确保buildfail.cs与项目中的其他源文件具有相同的命名空间,包含编译错误,并且位于根目录中.
  3. 您应该在VS中看到构建错误.如果您不手动构建.
  4. 从项目根目录创建一个新文件夹(excludeme)并将buildfail.cs移动到该文件夹​​.您仍然应该有构建错误.
  5. 将excludeme添加到project.json中的exclude属性.应删除构建错误,因为builfail.cs不再位于构建搜索路径中.

您可能想知道VS使用什么来隐藏解决方案资源管理器显示中的node_packages文件夹.我不确定,它可能不是用户可配置的,但它不是排除属性.注释掉project.json中的node_packages,你会得到构建错误(包恢复失败),但仍然会从解决方案资源管理器中隐藏该文件夹.由于这是IDE特定的行为,人们可能会认为它可能是在projectname.xproj中定义的,但我没有发现这样的属性,所以此时它似乎是VS的黑盒魔术.


Bla*_*ord 5

从Asp.Net 5 beta-8和Visual Studio 2015的补充工具更新开始,您现在可以排除/隐藏在解决方案资源管理器中显示的文件夹.公告帖中列出了有关此内容的更多信息以及其他更改.要隐藏文件或文件夹,请右键单击以显示上下文菜单并选择Hide from solution explorer.这会在.xproj文件中创建一个条目:

<ItemGroup>
  <DnxInvisibleContent Include="myhiddenfile.txt" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

另请注意,默认情况下,bower软件包的安装位置发生了变化.以前,Visual Studio中的Asp.Net 5模板会将bower软件包安装到一个名为的文件夹中bower_components,这是一种不使用Visual Studio的Web开发人员所熟悉的实践.但是,显然由于开发人员的困惑,这已经改为wwwroot/lib.可以通过编辑bowerrc文件来更改此设置.因此,bower_components新的beta-8模板中不存在该文件夹.有关更多信息,请参阅Scott Hanselman的这篇文章.


Elg*_*des 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 尝试为你做的(最少的)命令行内容(但很多次都失败了)。

哦,是的:您不必再排除文件夹,因为模板具有更合理的文件夹结构