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

  • 相关阅读:
    【Java学习】01. Java基本介绍及环境搭建
    vue组件之间的传值
    检测上传的文件类型js实现方式
    正则表达式学习笔记
    Nuxt.js学习笔记
    Vue+typescript+vuex项目实践学习笔记
    项目依赖&开发依赖
    vuex学习笔记
    export与export default的区别
    ES6 数组去重方法
  • 原文地址:https://www.cnblogs.com/xtjatswc/p/10273115.html
Copyright © 2011-2022 走看看