Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 试图理解“的默认行为”;“项目”;在VS中的global.json中_Visual Studio_Visual Studio 2015_.net Core_Projects And Solutions_Solution - Fatal编程技术网

Visual studio 试图理解“的默认行为”;“项目”;在VS中的global.json中

Visual studio 试图理解“的默认行为”;“项目”;在VS中的global.json中,visual-studio,visual-studio-2015,.net-core,projects-and-solutions,solution,Visual Studio,Visual Studio 2015,.net Core,Projects And Solutions,Solution,创建一个新项目后(例如.NETCore中的项目),解决方案的global.json如下所示 { "projects": [ "src", "test" ], "sdk": { "version": "1.0.0-preview2-003131" } } 新项目在src文件夹中创建,解决方案文件夹中存在一个物理文件夹。尽管global.json显示在visual studio的“解决方案项”解决方案文件夹中,但不存在名为“解决方案项”的物理文件夹 现在,如果我在solutio

创建一个新项目后(例如.NETCore中的项目),解决方案的global.json如下所示

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}
新项目在src文件夹中创建,解决方案文件夹中存在一个物理文件夹。尽管global.json显示在visual studio的“解决方案项”解决方案文件夹中,但不存在名为“解决方案项”的物理文件夹

现在,如果我在solution文件夹中添加一个unittest项目,它不会创建任何名为test的solution文件夹或物理文件夹

然后我创建了一个测试文件夹,它不会出现在VS上,并且创建一个新的测试项目不会在测试物理文件夹中创建

如果我添加了另一个新项目,那么这个新项目就是在src文件夹中创建的。如果我添加了任何项目(例如XMLFile),它会将其添加到解决方案项目解决方案文件夹中。但若您添加了测试项目,那个么它只会出现在解决方案文件夹下面

现在我的项目

物理文件夹如下所示

然而,我的问题是关于行为的差异

  • 为什么测试项目的行为不同
  • 为什么测试会自动添加到global.json上
    我还注意到,如果测试项目不在test文件夹中,有时它找不到xunit或nunit测试,但它会找到MSTest测试。所以,我的观点是global.json中的测试如何帮助我们?

    这里有一些事情

    项目JSON元素

    可以将此视为.sln文件过去的工作方式。它告诉VisualStudio在哪里查找要加载的项目。这些实际上也可以是完整路径(e.x.C:\Projects\SomeOtherProject)。您应该查看此处的官方文档,其中有更多解释:

    还应注意的是,在即将发布的.net core(当前标记为Preview 4)中,我们回到了.sln文件,因此global.json projects元素已被删除(请参见此处:)

    你的新项目放在哪里?

    老实说,这只是惯例。当您在Visual Studio中创建项目时,系统会询问您要将项目放置在何处,以便由您决定。。。如果您希望将所有内容都放在一个解决方案文件夹中,那么这很好。现在,代码有了一个“src”文件夹,根目录中的readme.md等,这似乎成了一种惯例

    显然,如果您使用dotnet new或yeoman创建项目,那么您可以完全控制正在发生的事情。您的代码不需要位于“src”文件夹中

    在.net core中测试

    我可以看到你在测试中走错了路。首先快速阅读本文:

    有几件事

  • .net核心测试现在是“控制台”应用程序。或者至少是这样创造的 他们在VS

  • 您需要安装特定的测试运行程序包才能运行测试 (MSTest、XUnit和NUnit都有测试运行程序)

  • 您可以使用“dotnettest”从命令行运行测试

  • 可能会有帮助