首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一文带你快速读懂.NET CLI(3)

一文带你快速读懂.NET CLI(3)

由于我刚好在一个小型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
返回列表