使用VSCode创建.NET Core 项目,添加类库间引用

时间:2024-08-12 19:04:20

注:网络上搜索到的关于VsCode创建调试.Net Core 项目的文章都比较老旧,不能完全参考使用,根据网络文章、微软官方文档的指导下,学习并整理此文档,但也大体和文档学习路线相似,主要为记录学习过程。

原文地址(个人博客):http://www.gitblogs.com/Blogs/Details?id=1fe78f56-62c1-4e00-9ba9-b02d03f4d98b

准备工作

1.下载并安装VSCode

2.安装.Net Core SDK

3.安装C#插件,C# Extensions 插件

使用VSCode创建.NET Core 项目,添加类库间引用

安装完成后,重启VSCode

了解dotnet 命令

C:\>dotnet

Usage: dotnet [options]
Usage: dotnet [path-to-application] Options:
  -h|--help            Display help.
  --version         Display version. path-to-application:
  The path to an application .dll file to execute.

dotnet --version  查询.net core 的版本号

dotnet -h  查询帮助信息

C:\>dotnet -h
.NET 命令行工具 (2.1.202)
使用情况: dotnet [runtime-options] [path-to-application]
使用情况: dotnet [sdk-options] [command] [arguments] [command-options] path-to-application:
  要执行的应用程序 .dll 文件的路径。 SDK 命令:
  new              初始化 .NET 项目。
  restore          还原 .NET 项目中指定的依赖项。
  run              编译并立即执行 .NET 项目。
  build            生成 .NET 项目。
  publish          发布 .NET 项目以进行部署(包括运行时)。
  test             使用项目中指定的测试运行程序运行单元测试。
  pack             创建 NuGet 包。
  migrate          将基于 project.json 的项目迁移到基于 MSBuild 的项目。
  clean            清除生成输出。
  sln              修改解决方案(SLN)文件。
  add              将引用添加到项目中。
  remove           从项目中删除引用。
  list             列出项目中的引用。
  nuget            提供其他 NuGet 命令。
  msbuild          运行 Microsoft 生成引擎 (MSBuild)。
  vstest           运行 Microsoft 测试执行命令行工具。 常用选项:
  -v|--verbosity        设置命令的详细级别。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。
  -h|--help             显示帮助。 运行“dotnet 命令 --help”,获取有关命令的详细信息。 sdk-options:
  --version        显示 .NET Core SDK 版本。
  --info           显示 .NET Core 信息。
  -d|--diagnostics 启用诊断输出。 runtime-options:
  --additionalprobingpath <path>    要探测的包含探测策略和程序集的路径。
  --fx-version <version>            要用于运行应用程序的安装版共享框架的版本。
  --roll-forward-on-no-candidate-fx 已启用“不前滚到候选共享框架”。
  --additional-deps <path>          其他 deps.json 文件的路径。 C:\>

开始创建项目

创建dotnetcode文件夹,作为项目主目录

D:\>cd dotnetcode

D:\dotnetcode>dotnet new sln -o zmblog
已成功创建模板“Solution File”。 D:\dotnetcode>cd zmblog D:\dotnetcode\zmblog>dotnet new classlib -o zmblog.Common
已成功创建模板“Class library”。 正在处理创建后操作...
正在 zmblog.Common\zmblog.Common.csproj 上运行 "dotnet restore"...
  Restoring packages for D:\dotnetcode\zmblog\zmblog.Common\zmblog.Common.csproj...
  Generating MSBuild file D:\dotnetcode\zmblog\zmblog.Common\obj\zmblog.Common.csproj.nuget.g.props.
  Generating MSBuild file D:\dotnetcode\zmblog\zmblog.Common\obj\zmblog.Common.csproj.nuget.g.targets.
  Restore completed in 223.44 ms for D:\dotnetcode\zmblog\zmblog.Common\zmblog.Common.csproj. 还原成功。 D:\dotnetcode\zmblog>dotnet new classlib -o zmblog.Models
已成功创建模板“Class library”。 正在处理创建后操作...
正在 zmblog.Models\zmblog.Models.csproj 上运行 "dotnet restore"...
  Restoring packages for D:\dotnetcode\zmblog\zmblog.Models\zmblog.Models.csproj...
  Generating MSBuild file D:\dotnetcode\zmblog\zmblog.Models\obj\zmblog.Models.csproj.nuget.g.props.
  Generating MSBuild file D:\dotnetcode\zmblog\zmblog.Models\obj\zmblog.Models.csproj.nuget.g.targets.
  Restore completed in 294.69 ms for D:\dotnetcode\zmblog\zmblog.Models\zmblog.Models.csproj. 还原成功。 D:\dotnetcode\zmblog>dotnet new razor -o zmblog.WebApp
已成功创建模板“ASP.NET Core Web App”。
此模板包含非 Microsoft 的各方的技术,有关详细信息,请参阅 https://aka.ms/template-3pn。 正在处理创建后操作...
正在 zmblog.WebApp\zmblog.WebApp.csproj 上运行 "dotnet restore"...
  Restoring packages for D:\dotnetcode\zmblog\zmblog.WebApp\zmblog.WebApp.csproj...
  Restore completed in 95.12 ms for D:\dotnetcode\zmblog\zmblog.WebApp\zmblog.WebApp.csproj.
  Generating MSBuild file D:\dotnetcode\zmblog\zmblog.WebApp\obj\zmblog.WebApp.csproj.nuget.g.props.
  Generating MSBuild file D:\dotnetcode\zmblog\zmblog.WebApp\obj\zmblog.WebApp.csproj.nuget.g.targets.
  Restore completed in 2.91 sec for D:\dotnetcode\zmblog\zmblog.WebApp\zmblog.WebApp.csproj. 还原成功。 D:\dotnetcode\zmblog>dotnet sln add zmblog.Common/zmblog.Common.csproj
已将项目“zmblog.Common\zmblog.Common.csproj”添加到解决方案中。 D:\dotnetcode\zmblog>dotnet sln add zmblog.Models/zmblog.Models.csproj
已将项目“zmblog.Models\zmblog.Models.csproj”添加到解决方案中。 D:\dotnetcode\zmblog>dotnet sln add zmblog.WebApp/zmblog.WebApp.csproj
已将项目“zmblog.WebApp\zmblog.WebApp.csproj”添加到解决方案中。 D:\dotnetcode\zmblog>

项目结构创建完成,如图

使用VSCode创建.NET Core 项目,添加类库间引用

使用VsCode打开项目

File->Open Folder,选择项目根目录文件夹,点击选择文件夹

使用VSCode创建.NET Core 项目,添加类库间引用

展开zmblog.WebApp,打开Program.cs(或者其他的文件)

点击后稍等一会,在输出窗口会看到正在下载OmniSharp 包,等待下载完成......

貌似国内的下载速度比较慢,如果遇到下载包失败,可重新打开,会再次下载。

下载完 OmniSharp 后会下载.NET Core Debugger...

添加项目间引用关系

在zmblog.WebApp 中引用 zmblog.Common 、zmblog.Models,操作步骤如下

1.打开zmblog.WebApp.csproj文件

使用VSCode创建.NET Core 项目,添加类库间引用

到这里,项目结构创建完成,项目间引用关系完成

开始代码工作

在zmblog.Models 中,创建UserInfo类

public class UserInfo
{
    public int Id {get;set;}
    public string UserName {get;set;}
    public int Age{get;set;}
    public string Password {get;set;}
    public override string ToString()
    {
        return string.Format("我是{0},今年{1}岁!",this.UserName,this.Age);
    }
}

在zmblog.WebApp中,创建文件夹及文件,结构如下:

zmblog.WebApp

Controllers

HomeController.cs

Views

Home

Index.cshtml

HomeController 内容:

public class HomeController:Controller
{
    public IActionResult Index()
    {    
        UserInfo u = new UserInfo();
        u.Age = 12;
        u.UserName = "fang jian feng";
        return View(u);
    }
}

Index.cshtml 内容:

@model zmblog.Models.UserInfo

@Model.ToString()

StartUp.cs  Configure方法中,增加代码

app.UseMvc(routes =>
{
    routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}/{id?}");
});

运行调试项目

使用VSCode创建.NET Core 项目,添加类库间引用

点击Debug图标,切换到调试界面,点击绿色的三角形,启动调试,在弹出的浏览器中输入地址  /Home/Index

使用VSCode创建.NET Core 项目,添加类库间引用

使用VsCode创建.Net Core 环境,使用VsCode创建.Net Core项目,并添加项目间引用关系,启动调试.Net Core项目,整个过程记录完成

原文地址(个人博客):http://www.gitblogs.com/Blogs/Details?id=1fe78f56-62c1-4e00-9ba9-b02d03f4d98b