zoukankan      html  css  js  c++  java
  • VS Code 管理 .NET Core解决方案

    本练习要使用Visual studio code完成一个包含多个项目的解决方案,包括类库和Web项目。结合Visual Studio Code和.NET Core CLI,创建项目结构如下:

    piedpiper

    └── src

    ├── piedpiper.domain

    ├── piedpiper.sln

    ├── piedpiper.tests

    └── piedpiper.website

    任务1:创建解决方案

    首先,我们将创建我们的解决方案(.sln)文件,我一直都喜欢在顶级源文件夹中创建解决方案文件D:WorkTestpiedpiper, 打开Visual Studio Code的集成终端,

    PS D:WorkTestpiedpiper> cd src

    PS D:WorkTestpiedpipersrc> dotnet new sln -n piedpiper

    这将创建一个sln名为的新文件piedpiper.sln。

    接下来,我们使用dotnet new <projecttype>命令中的output参数在特定文件夹中创建一个项目:

    PS D:WorkTestpiedpipersrc> dotnet new mvc -o piedpiper.website

    已成功创建模板“ASP.NET Core Web App (Model-View-Controller)”。

    这将在同一目录中的piedpiper.website文件夹中创建一个ASP.NET Core MVC应用程序。如果我们目前看到我们的文件夹结构,它看起来像这样:

    接下来我们可以为我们的域名和测试项目做同样的事情:

    PS D:WorkTestpiedpipersrc> dotnet new classlib -o piedpiper.domain

    PS D:WorkTestpiedpipersrc> dotnet new xunit -o piedpiper.tests

    任务2:将项目添加到我们的解决方案中

    在这一点上,我们有一个没有引用项目的解决方案文件,我们可以通过调用list命令来验证这一点:

    PS D:WorkTestpiedpipersrc> dotnet sln list

    未在解决方案中找到项目。

    接下来我们将我们的项目添加到我们的解决方案文件,我们很容易在Visual Studio 2017中打开解决方案,然后手动添加对每个项目的引用。Visual Studio Code也可以通过.NET Core CLI完成。

    现在开始使用以下命令添加每个项目,我们通过引用.csproj文件来执行此操作:

    PS D:WorkTestpiedpipersrc> dotnet sln add piedpiper.website/piedpiper.website.csproj

    PS D:WorkTestpiedpipersrc> dotnet sln add piedpiper.domain/piedpiper.domain.csproj

    PS D:WorkTestpiedpipersrc> dotnet sln add piedpiper.tests/piedpiper.tests.csproj

    注意:如果您使用的是基于Linux / Unix的shell,您可以使用globbing模式在单个命令中执行此操作!

    dotnet sln add **/*.csproj

    现在,当我们调用list我们的解决方案文件时,我们应该得到以下输出:

    S D:WorkTestpiedpipersrc> dotnet sln list

    项目引用

    ----

    piedpiper.websitepiedpiper.website.csproj

    piedpiper.domainpiedpiper.domain.csproj

    piedpiper.testspiedpiper.tests.csproj

    任务3:向项目添加项目引用

    接下来,我们要开始向我们的项目添加项目引用,通过dotnet add reference命令将我们的域库链接到我们的网站和单元测试库:

    PS D:WorkTestpiedpipersrc> dotnet add piedpiper.tests reference piedpiper.domain/piedpiper.domain.csproj

    已将引用“..piedpiper.domainpiedpiper.domain.csproj”添加到项目。

    现在,如果要查看测试项目的内容,我们将看到我们的domain 已被引用:

    PS D:WorkTestpiedpipersrc> cd .piedpiper.tests

    PS D:WorkTestpiedpipersrcpiedpiper.tests> cat .piedpiper.tests.csproj

    <Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>

    <TargetFramework>netcoreapp2.0</TargetFramework>

    <IsPackable>false</IsPackable>

    </PropertyGroup>

    <ItemGroup>

    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" />

    <PackageReference Include="xunit" Version="2.2.0" />

    <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" />

    </ItemGroup>

    <ItemGroup>

    <ProjectReference Include="..piedpiper.domainpiedpiper.domain.csproj" />

    </ItemGroup>

    </Project>

    接下来,我们将为我们的网站项目做同样的事情,所以让我们去我们的网站文件夹并运行相同的命令:

    dotnet add piedpiper.website reference piedpiper.domain/piedpiper.domain.csproj

    如果我们返回到我们的根源文件夹并运行build命令,我们应该看到所有的构建成功:

    PS D:WorkTestpiedpipersrc> dotnet build

    用于 .NET Core 的 Microsoft (R) 生成引擎版本 15.3.409.57025

    版权所有(C) Microsoft Corporation。保留所有权利。

    piedpiper.domain -> D:WorkTestpiedpipersrcpiedpiper.domaininDebug etstandard2.0piedpiper.domain.dll

    piedpiper.tests -> D:WorkTestpiedpipersrcpiedpiper.testsinDebug etcoreapp2.0piedpiper.tests.dll

    piedpiper.website -> D:WorkTestpiedpipersrcpiedpiper.websiteinDebug etcoreapp2.0piedpiper.website.dll

    已成功生成。

    0 个警告

    0 个错误

    任务4:将NuGet包添加到项目或更新它

    假设我们要将NuGet包添加到我们的一个项目中,我们可以使用该add package命令来执行此操作。

    首先导航到要添加NuGet软件包的项目:

    PS D:WorkTestpiedpipersrc> cd .piedpiper.tests

    PS D:WorkTestpiedpipersrcpiedpiper.tests> dotnet add package shouldly

    Writing C:UsersdellAppDataLocalTemp mp68E4.tmp

    info : Adding PackageReference for package 'shouldly' into project 'D:WorkTestpiedpipersrcpiedpiper.testspiedpiper.tests.csproj'.

    log : Restoring packages for D:WorkTestpiedpipersrcpiedpiper.testspiedpiper.tests.csproj...

    info : GET https://api.nuget.org/v3-flatcontainer/shouldly/index.json

    info : OK https://api.nuget.org/v3-flatcontainer/shouldly/index.json 512ms

    info : GET https://api.nuget.org/v3-flatcontainer/shouldly/2.8.3/shouldly.2.8.3.nupkg

    info : OK https://api.nuget.org/v3-flatcontainer/shouldly/2.8.3/shouldly.2.8.3.nupkg 84ms

    log : Installing Shouldly 2.8.3.

    info : Package 'shouldly' is compatible with all the specified frameworks in project 'D:WorkTestpiedpipersrcpiedpiper.testspiedpiper.tests.csproj'.

    info : PackageReference for package 'shouldly' version '2.8.3' added to file 'D:WorkTestpiedpipersrcpiedpiper.testspiedpiper.tests.csproj'.

    或者,我们可以使用版本参数指定要安装的版本:

    dotnet add package shouldly -v 2.8.3

    更新NuGet包

    将NuGet软件包更新到最新版本也是一样简单,只需使用相同的命令而不使用版本参数:

    dotnet add package shouldly

  • 相关阅读:
    二分图最大匹配的K&#246;nig定理及其证明
    HDOJ 2389 Rain on your Parade
    HDOJ 1083 Courses
    HDOJ 2063 过山车
    POJ 1469 COURSES
    UESTC 1817 Complete Building the Houses
    POJ 3464 ACM Computer Factory
    POJ 1459 Power Network
    HDOJ 1532 Drainage Ditches
    HDU 1017 A Mathematical Curiosity
  • 原文地址:https://www.cnblogs.com/xtjatswc/p/10273115.html
Copyright © 2011-2022 走看看