由于我刚好在一个小型Git存储库中构建了它,在使用Git add添加了任何新文件之后,我使用Git status查看新创建的文件:
new file: HeyWorld/Controllers/ValuesController.cs new file: HeyWorld/HeyWorld.csproj new file: HeyWorld/Program.cs new file: HeyWorld/Startup.cs new file: HeyWorld/appsettings.Development.json new file: HeyWorld/appsettings.json
现在,要将新项目添加到我们的空解决方案文件中,您可以像这样使用“dotnet sln”命令:
dotnet sln DotNetCliArticle.sln add HeyWorld/HeyWorld.csproj
现在我们有了一个新的ASP.NET Core API服务作为外壳,无需打开Visual Studio.NET(或者是JetBrains Rider)。为了更进一步,在编写任何实际代码之前启动我们的测试项目,我发出以下命令:
dotnet new xunit --output HeyWorld.Testsdotnet sln DotNetCliArticle.sln add HeyWorld.Tests/HeyWorld.Tests.csproj
上面的命令使用xUnit.NET创建一个新项目,并将该新项目添加到我们的解决方案文件中。测试工程需要对“HeyWorld”的工程引用,幸运的是,我们可以使用很棒的“dotnet add”工具添加工程引用,如下所示:
dotnet add HeyWorld.Tests/HeyWorld.Tests.csproj reference HeyWorld/HeyWorld.csproj
在打开解决方案之前,我知道还有一些Nuget参考资料,我想在测试项目中使用它们。我选择的断言工具是Shoully,因此我将通过对命令行发出另一个调用来添加对最新版本的shoully的引用:
dotnet add HeyWorld.Tests/HeyWorld.Tests.csproj package Shouldly
命令行的输出如下:
info : Adding PackageReference for package 'Shouldly' into project 'HeyWorld.Tests/HeyWorld.Tests.csproj'.log : Restoring packages for /Users/jeremydmiller/code/DotNetCliArticle/HeyWorld.Tests/HeyWorld.Tests.csproj...info : GET https://api.nuget.org/v3-flatcontainer/shouldly/index.jsoninfo : OK https://api.nuget.org/v3-flatcontainer/shouldly/index.json 109msinfo : Package 'Shouldly' is compatible with all the specified frameworks in project 'HeyWorld.Tests/HeyWorld.Tests.csproj'.info : PackageReference for package 'Shouldly' version '3.0.0' added to file '/Users/jeremydmiller/code/DotNetCliArticle/HeyWorld.Tests/HeyWorld.Tests.csproj'.
接下来,我想向名为Alba的测试项目添加至少一个Nuget引用。我将使用AspNetCore2来编写针对新的web应用程序的HTTP契约测试:
dotnet add HeyWorld.Tests/HeyWorld.Tests.csproj package Alba.AspNetCore2
现在,在使用代码之前先检查一下,我将在命令行发出以下命令构建解决方案中的所有项目,确保它们都可以正常编译:
dotnet build DotNetCliArticle.sln
由于Alba.AspNetCore2和ASP.NET Core Nuget在HeyWorld项目中的引用之间的菱形依赖版本的冲突,所以没有编译。不过不用担心,因为这个问题很容易解决,只需修复Microsoft.AspNetCore的版本依赖关系即可。测试项目中的所有Nuget都是这样的:
dotnet add HeyWorld.Tests/HeyWorld.Tests.csproj package Microsoft.AspNetCore.All --version 2.1.2
在上面的示例中,使用值为“2.1.2”的“–version”标志将修复对该版本的引用,而不仅仅是使用从Nuget提要中找到的最新版本。
为了再次检查我们的Nuget依赖问题是否已经解决,我们可以使用下面的命令进行检查,它比重新编译所有东西要更快:
dotnet clean \u0026amp;\u0026amp; dotnet restore DotNetCliArticle.sln |