[C# SDK/IDE]-VSCode 搭建 C# 开发环境

活动地址:毕业季·进击的技术er

夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始,CSDN诚邀各毕业生/在校生/职场人讲述自己的毕业季故事,分享自己的经验,技术er的进击之路,等你来书写!我是从自身经历出发,分享自己的经验。

在技术学习过程中遇到的最大问题是?如何解决的?

    最近准备写 C# 的笔记总结专栏 bug 笔记本硬盘空间实在是不够用了
    根本没有办法再安装一个 Visual Studio 集成开发环境了!!!
    在学 Java 的过程中基本都是用记事本和命令提示符……再也不想经历了

    终于让我想起来大名鼎鼎的 Visual Studio Code 编辑器!
    这玩意儿不仅小巧 还是跨平台的 WIndows Linux 都能用
    但是 Visual Studio Code 安装完毕也真的就是一个编辑器……除了敲代码什么都不能干
    这就需要配置了 不然只能写 C# 代码而不能编译运行 C# 程序我还不如用记事本 cmd 的呢!!!
    在一下午的摸索下终于是让我摸索出来如何配置 Visual Studio Code 了~开心!

##################################################

目录

获取安装 Visual Studio Code 汉化及插件配置

获取 VSCode

安装 VSCode

安装中文包插件

关闭自动更新

安装解决方案管理器插件

安装 C# 扩展插件

官网下载安装 .NET Code SDK

官网获取安装包

安装 SDK

初识 .NET SDK 的一些命令

基本 C# 程序编译和运行

命令行单独利用 SDK 命令初始化工作空间并编译运行 C# 程序

在 VSCode 中搭配 SDK 编译运行 C# 程序

安装配置 Code Runner 插件更方便地编译运行

好人呐呐

本节所有资源


##################################################

获取安装 Visual Studio Code 汉化及插件配置

——————————

获取 VSCode

        官方主页:

Visual Studio Code - Code Editing. RedefinedVisual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.https://code.visualstudio.com/icon-default.png?t=N7T8https://code.visualstudio.com/

        主页如下:

主页

——————————

安装 VSCode

        以普通用户身份运行安装包即可:

普通用户

        默认安装位置为

C:\Users\用户\AppData\Local\Programs\Microsoft VS Code
C:\Users\byme\AppData\Local\Programs\Microsoft VS Code
C:\Users\byme\AppData\Local\Programs\Microsoft VS Code

        开始菜单文件夹默认即可:

默认

        附加任务也是默认:

默认

        这是我的安装配置:

目标位置:
      C:\Users\byme\AppData\Local\Programs\Microsoft VS Code

开始菜单文件夹:
      Visual Studio Code

附加任务:
      附加快捷方式:
         创建桌面快捷方式(D)
      其他:
         将“通过 Code 打开”操作添加到 Windows 资源管理器文件上下文菜单
         将“通过 Code 打开”操作添加到 Windows 资源管理器目录上下文菜单
         将 Code 注册为受支持的文件类型的编辑器
         添加到 PATH (重启后生效)

安装配置

        开始安装

开始安装

开始安装

开始安装

        安装完毕首次运行:

首次运行

        先自动提醒我们装上一个中文包:

中文包

        重启程序之后:

重启程序

——————————

安装中文包插件

        默认是英文 如果没有提示你需要安装中文的话可以选择手动安装

        快捷键

Ctrl Shift x

        搜索中文包

Chinese

        下载安装完毕后

        快捷键

Ctrl Shift p

        输入

configure language

        就可以配置显示语言了:

configure language

        这边下载安装的是中文简体 zh-cn

中文简体 zh-cn

        当然你也可以在 configure language 看到配置特定语言的首选项

配置特定语言的首选项

        配置单一语言的 我们就不说了

配置特定语言的首选项

——————————

关闭自动更新

关闭自动更新

——————————

安装解决方案管理器插件

        快捷键

Ctrl Shift x

Ctrl Shift x

        搜索安装该插件:

vscode-solution-explorer

vscode-solution-explorer

vscode-solution-explorer

vscode-solution-explorer

安装完毕

        安装完毕之后重启程序:

重启之后

——————————

安装 C# 扩展插件

        安装 C# 语言的插件:

@id:ms-dotnettools.csharp

@id:ms-dotnettools.csharp

@id:ms-dotnettools.csharp

@id:ms-dotnettools.csharp

        但是上面这个报错我是没看懂啊 其她都好

##################################################

官网下载安装 .NET Code SDK

——————————

官网获取安装包

        官网下载主页

下载适用于 Visual Studio Code 的 .NET SDK下载并安装 .NET 软件开发工具包(SDK),从而在 Linux、macOS 或 Windows 上使用 Visual Studio Code 生成 .NET 应用。https://dotnet.microsoft.com/zh-cn/download/dotnet/sdk-for-vs-code?utm_source=vs-code&utm_medium=referral&utm_campaign=sdk-installicon-default.png?t=N7T8https://dotnet.microsoft.com/zh-cn/download/dotnet/sdk-for-vs-code?utm_source=vs-code&utm_medium=referral&utm_campaign=sdk-install

适用于 Visual Studio Code 的 .NET SDK
适用于 Visual Studio Code 的 .NET SDK

——————————

安装 SDK

        这边我安装 64 位的:

安装 .NET Code SDK

安装 .NET Code SDK

安装 .NET Code SDK

安装 .NET Code SDK

安装 .NET Code SDK

安装 .NET Code SDK

已成功安装。

下列项安装于: ""
    • .NET SDK 6.0.301
    • .NET Runtime 6.0.6
    • ASP.NET Core Runtime 6.0.6
    • .NET Windows Desktop Runtime 6.0.6

此产品会收集用法数据
    • 详细信息和选择退出选项: https://aka.ms/dotnet-cli-telemetry

资源
    • .NET 文档: https://aka.ms/dotnet-docs
    • SDK 文档: https://aka.ms/dotnet-sdk-docs
    • 发行说明: https://aka.ms/dotnet6-release-notes
    • 教程: https://aka.ms/dotnet-tutorials

        安装完成之后管理员权限运行 cmd 输入

dotnet --version

        如果输出版本号就是安装成功!

Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。

C:\Windows\system32>dotnet --version
6.0.301

C:\Windows\system32>

dotnet --version

——————————

初识 .NET SDK 的一些命令

        查看帮助文档:

C:\Windows\system32>dotnet -h
使用情况: dotnet [runtime-options] [path-to-application] [arguments]

执行 .NET 应用程序。

runtime-options:
  --additionalprobingpath <path>   要探测的包含探测策略和程序集的路径。
  --additional-deps <path>         指向其他 deps.json 文件的路径。
  --depsfile                       指向 <application>.deps.json 文件的路径。
  --fx-version <version>           要用于运行应用程序的安装版共享框架的版本。
  --roll-forward <setting>         前滚至框架版本(LatestPatch, Minor, LatestMino
r, Major, LatestMajor, Disable)。
  --runtimeconfig                  指向 <application>.runtimeconfig.json 文件的
路径。

path-to-application:
  要执行的应用程序 .dll 文件的路径。

使用情况: dotnet [sdk-options] [command] [command-options] [arguments]

执行 .NET SDK 命令。

sdk-options:
  -d|--diagnostics  启用诊断输出。
  -h|--help         显示命令行帮助。
  --info            显示 .NET 信息。
  --list-runtimes   显示安装的运行时。
  --list-sdks       显示安装的 SDK。
  --version         显示使用中的 .NET SDK 版本。

SDK 命令:
  add               将包或引用添加到 .NET 项目。
  build             生成 .NET 项目。
  build-server      与由生成版本启动的服务器进行交互。
  clean             清理 .NET 项目的生成输出。
  format            将样式首选项应用到项目或解决方案。
  help              显示命令行帮助。
  list              列出 .NET 项目的项目引用。
  msbuild           运行 Microsoft 生成引擎(MSBuild)命令。
  new               创建新的 .NET 项目或文件。
  nuget             提供其他 NuGet 命令。
  pack              创建 NuGet 包。
  publish           发布 .NET 项目进行部署。
  remove            从 .NET 项目中删除包或引用。
  restore           还原 .NET 项目中指定的依赖项。
  run               生成并运行 .NET 项目输出。
  sdk               管理 .NET SDK 安装。
  sln               修改 Visual Studio 解决方案文件。
  store             在运行时包存储中存储指定的程序集。
  test              使用 .NET 项目中指定的测试运行程序运行单元测试。
  tool              安装或管理扩展 .NET 体验的工具。
  vstest            运行 Microsoft 测试引擎(VSTest)命令。
  workload          管理可选工作负荷。

捆绑工具中的其他命令:
  dev-certs         创建和管理开发证书。
  fsi               启动 F# 交互/执行 F# 脚本。
  sql-cache         SQL Server 缓存命令行工具。
  user-secrets      管理开发用户密码。
  watch             启动文件观察程序,它会在文件发生更改时运行命令。

运行 "dotnet [command] --help",获取有关命令的详细信息。

C:\Windows\system32>

        .NET SDK 是一组库和工具

        开发人员可用其创建 .NET 应用程序和库

        包含以下用于构建和运行应用程序的组件:

.NET CLI

.NET 运行时和库

dotnetdotnet

        这边我们主要查看新建命令:

C:\Windows\system32>dotnet new -h
Usage: new [options]

Options:
  -h, --help                     显示此命令的帮助。
  -l, --list <PARTIAL_NAME>      列出包含指定模板名称的模板。如果未指定任何名称
,则列出所有模板。
  -n, --name                     正在创建的输出名称。如未指定名称,则使用输出目
录的名称。
  -o, --output                   要放置生成的输出的位置。
  -i, --install                  安装源或模板包。
  -u, --uninstall                卸载源或模板包。
  --interactive                  允许内部 dotnet restore 命令以停止和等待用户输
入或操作(例如完成身份验证)。
  --add-source, --nuget-source   指定安装期间将使用的 NuGet 源。
  --type                         根据可用类型筛选模板。预定义值为“项目”和“项
”。
  --dry-run                      如果运行给定命令行将导致模板创建,则显示将发生
情况的摘要。
  --force                        强制生成内容,即使它会更改现有文件。如果与 --in
stall 选项一起使用,则允许从指定的源安装模板包,即使它们将替代另一个源中的模板包
。
  -lang, --language              根据语言筛选模板,并指定要创建的模板的语言。
  --update-check                 检查当前安装的模板包以获取更新。
  --update-apply                 检查当前安装的模板包以获取更新,然后安装更新。
  --search <PARTIAL_NAME>        在 NuGet.org 上搜索模板。
  --author <AUTHOR>              根据模板作者筛选模板。仅适用于 --搜索 或 --列出
 | -l 选项。
  --package <PACKAGE>            筛选基于 NuGet 包 ID 的模板。应用于 --搜索。
  --columns <COLUMNS_LIST>       要在 --列出 和 --搜索 输出中显示的以逗号分隔的
列的列表。
                                 支持的列为: 语言、标记、作者和类型。
  --columns-all                  在 --列出 和 --搜索 中显示所有列。
  --tag <TAG>                    根据标记筛选模板。应用于 --搜索 和 --列出。
  --no-update-check              在实例化模板时,禁用对模板包更新的检查。



C:\Windows\system32>

        我们可以新建的有这些:

C:\Windows\system32>dotnet new -l
这些模板已匹配你的输入:

模板名              短名称               语言        标记
------------------  -------------------  ----------  --------------------------
ASP.NET Core Empty  web                  [C#],F#     Web/Empty
ASP.NET Core gR...  grpc                 [C#]        Web/gRPC
ASP.NET Core We...  webapi               [C#],F#     Web/WebAPI
ASP.NET Core We...  webapp,razor         [C#]        Web/MVC/Razor Pages
ASP.NET Core We...  mvc                  [C#],F#     Web/MVC
ASP.NET Core wi...  angular              [C#]        Web/MVC/SPA
ASP.NET Core wi...  react                [C#]        Web/MVC/SPA
Blazor Server App   blazorserver         [C#]        Web/Blazor
Blazor WebAssem...  blazorwasm           [C#]        Web/Blazor/WebAssembly/PWA
dotnet gitignor...  gitignore                        Config
Dotnet 本地工具...  tool-manifest                    Config
EditorConfig 文件   editorconfig                     Config
global.json file    globaljson                       Config
MSTest Test Pro...  mstest               [C#],F#,VB  Test/MSTest
MVC ViewImports     viewimports          [C#]        Web/ASP.NET
MVC ViewStart       viewstart            [C#]        Web/ASP.NET
NuGet 配置          nugetconfig                      Config
NUnit 3 Test Item   nunit-test           [C#],F#,VB  Test/NUnit
NUnit 3 Test Pr...  nunit                [C#],F#,VB  Test/NUnit
Protocol Buffer...  proto                            Web/gRPC
Razor Class Lib...  razorclasslib        [C#]        Web/Razor/Library
Razor Component     razorcomponent       [C#]        Web/ASP.NET
Razor Page          page                 [C#]        Web/ASP.NET
Web 配置            webconfig                        Config
Windows 窗体控件库  winformscontrollib   [C#],VB     Common/WinForms
Windows 窗体类库    winformslib          [C#],VB     Common/WinForms
Windows 窗体应用    winforms             [C#],VB     Common/WinForms
Worker Service      worker               [C#],F#     Common/Worker/Web
WPF 类库            wpflib               [C#],VB     Common/WPF
WPF 应用程序        wpf                  [C#],VB     Common/WPF
WPF 用户控件库      wpfusercontrollib    [C#],VB     Common/WPF
WPF 自定义控件库    wpfcustomcontrollib  [C#],VB     Common/WPF
xUnit Test Project  xunit                [C#],F#,VB  Test/xUnit
解决方案文件        sln                              Solution
控制台应用          console              [C#],F#,VB  Common/Console
类库                classlib             [C#],F#,VB  Common/Library


C:\Windows\system32>

        我们只需要输入第二列的简写名称就可以创建对应的模板

        按照模板创建一个控制台项目:

dotnet new console    /* 创建到当前目录 */
dotnet new console -o test    /* 创建在当前目录中的 test 目录中 */

        之后我们如果安装了 VSCode 就可以使用该命令打开此项目:

code test    /* 在 VSCode 中打开 test 项目 */

##################################################

基本 C# 程序编译和运行

——————————

命令行单独利用 SDK 命令初始化工作空间并编译运行 C# 程序

        新建一个文件夹 这个就是我们的工作空间了!

        以后都要在这里存放项目 这里我设置的目录是

E:\C#

        进入该目录 在地址栏输入 cmd 后回车

地址栏输入

        打开当前目录的 cmd

打开当前目录的 cmd

        在当前目录创建工作空间:

dotnet new console    /* 创建控制台应用程序 */

        创建工作空间完毕:

dotnet new console

Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。

E:\C#>dotnet new console
已成功创建模板“控制台应用”。

正在处理创建后操作...
在 E:\C#\C#.csproj 上运行 “dotnet restore”...
  正在确定要还原的项目…
  已还原 E:\C#\C#.csproj (用时 228 ms)。
已成功还原。



E:\C#>dir
 驱动器 E 中的卷是 File
 卷的序列号是 0008-8672

 E:\C# 的目录

2022/06/29  19:23    <DIR>          .
2022/06/29  19:23    <DIR>          ..
2022/06/29  19:22               288 C#.csproj
2022/06/29  19:23    <DIR>          obj
2022/06/29  19:22               105 Program.cs
               2 个文件            393 字节
               3 个目录 25,124,012,032 可用字节

E:\C#>

        初始化目录时创建的 Program.cs 是 SDK 为我们创建的 C# 源文件:

Program.cs

        是的你没有看错 C# 真的只需要一条输出语句就可以编译出一个程序:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

        输入命令 dotnet run 编译运行:

编译命令

        编译出来的 .exe 存放在可执行程序在工作目录的

bin\Debug\net6.0

        该目录下的 .exe 就是编译出来的程序了:

编译的程序

        完全可以双击运行的!

——————————

在 VSCode 中搭配 SDK 编译运行 C# 程序

        cmd 中在当前工作目录启动 VSCode 的话可以输入命令:

code .

在当前目录启动 VSCode

        该命令相当于你右击空白处选择 VSCode 在当前目录启动:

启动 VSCode 在当前目录

         勾选我信任:

信任

        此时在左边看到 该 图标表示创建了一个项目: 

创建了一个项目

        若右下角弹出该询问务必选择 Yes !!!

Yes

        此时务必选择 Yes 然后发现左边列多出来一个隐藏目录:

Yes

        该 .cs 是系统自动为我们创建的 c# 源文件:

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

Program.cs

        调出一个终端:

调出一个终端

        输入命令后回车:

dotnet run

dotnet run

        等待几秒后程序会显示运行的结果:

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

PS E:\C#> dotnet run
Hello, World!
PS E:\C#>

dotnet run

        这个编译运行的操作相当于你按下 Ctrl F5 快捷键:

Ctrl F5

Ctrl F5

——————————

安装配置 Code Runner 插件更方便地编译运行

        在扩展中搜索并安装该插件

Code Runner

Code Runner

Code Runner

Code Runner

        安装插件之后退出程序再重新启动 VSCode 程序

        点击左下角的设置图标  进入设置:

设置

设置

        搜索

run in terminal

run in terminal

        勾选 Run In Terminal 的

Whether to run code in Integrated Terminal.

勾选

        点击右上角的  图标打开设置源代码:

设置源代码

        原 settings.json 内容:

{
    "update.showReleaseNotes": false,
    "update.enableWindowsBackgroundUpdates": false,
    "update.mode": "none",
    "code-runner.runInTerminal": true
}

        最后一行代码添加英文逗号

        回车另起一行 输入 code 选择 code-runner.executorMap 后回车:

code-runner.executorMap

        直接帮你导入了几十行代码:

code-runner.executorMap

        找到 csharp 这一行:

csharp

        替换 csharp 命令 scriptcs 为:

cd $dir && dotnet run $fileName

cd $dir && dotnet run $fileName

        修改后内容:

{
    "update.showReleaseNotes": false,
    "update.enableWindowsBackgroundUpdates": false,
    "update.mode": "none",
    "code-runner.runInTerminal": true,
    "code-runner.executorMap": {
        "javascript": "node",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt",
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "objective-c": "cd $dir && gcc -framework Cocoa $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "php": "php",
        "python": "python -u",
        "perl": "perl",
        "perl6": "perl6",
        "ruby": "ruby",
        "go": "go run",
        "lua": "lua",
        "groovy": "groovy",
        "powershell": "powershell -ExecutionPolicy ByPass -File",
        "bat": "cmd /c",
        "shellscript": "bash",
        "fsharp": "fsi",
        "csharp": "cd $dir && dotnet run $fileName",
        "vbscript": "cscript //Nologo",
        "typescript": "ts-node",
        "coffeescript": "coffee",
        "scala": "scala",
        "swift": "swift",
        "julia": "julia",
        "crystal": "crystal",
        "ocaml": "ocaml",
        "r": "Rscript",
        "applescript": "osascript",
        "clojure": "lein exec",
        "haxe": "haxe --cwd $dirWithoutTrailingSlash --run $fileNameWithoutExt",
        "rust": "cd $dir && rustc $fileName && $dir$fileNameWithoutExt",
        "racket": "racket",
        "scheme": "csi -script",
        "ahk": "autohotkey",
        "autoit": "autoit3",
        "dart": "dart",
        "pascal": "cd $dir && fpc $fileName && $dir$fileNameWithoutExt",
        "d": "cd $dir && dmd $fileName && $dir$fileNameWithoutExt",
        "haskell": "runhaskell",
        "nim": "nim compile --verbosity:0 --hints:off --run",
        "lisp": "sbcl --script",
        "kit": "kitc --run",
        "v": "v run",
        "sass": "sass --style expanded",
        "scss": "scss --style expanded",
        "less": "cd $dir && lessc $fileName $fileNameWithoutExt.css",
        "FortranFreeForm": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "fortran-modern": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "fortran_fixed-form": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "fortran": "cd $dir && gfortran $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "sml": "cd $dir && sml $fileName"
    }
}

        Ctrl s 保存并返回代码界面 此时按下

Ctrl Alt n

         或者点击右上方的三角形图标  即可编译运行!

         正在编译:

正在编译

        运行成功:

运行成功

##################################################

好人呐呐

——————————

本节所有资源

pan.baidu.com/s/1TfsyHVYqoUTNscDbP7axPQ
1025

活动地址:毕业季·进击的技术er

  • 50
    点赞
  • 174
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
在SAP PS项目中,报工可以通过CATS(Cross-Application Time Sheet)模块来实现。CATS是SAP中用于记录工作时间和任务的跨应用程序工具,可以实现工时填报审批、考勤记录、员工差旅、人员成本核算等多个功能,并且能将相应的时间数据传输至PT、PY、CO、PM、PS、CS等多个模块,实现时间与成本数据的集成。\[2\] 然而,需要注意的是CATS的使用需要建立在SAP HR模块的员工主数据等功能的基础之上,并且需要员工具备操作SAP的基础和账号。因此,是否启用CATS来解决PS项目上的人工工时及费用问题需要根据企业的具体情况进行考量。有些企业可能会选择外接其他专业系统或自开发程序的方式来处理这个问题。\[3\] 如果企业没有启用HR模块,可以考虑通过活动进行项目人工工时的收集,然后通过外挂前端timesheet系统将审核的数据通过BAPI对活动报工,实现项目人工成本的更新。这样可以避免在SAP内部进行人工工时提报的不便捷性。\[1\] #### 引用[.reference_title] - *1* [跟着团子学SAP PS:项目工时管理 CAT2/CAT5/CN25/CN27](https://blog.csdn.net/Lucas1211/article/details/113338467)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [【SAP-PS笔记】项目报工之CATS与PS的集成](https://blog.csdn.net/qq_43304114/article/details/116724925)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

燃吹

呜呜呜没钱钱吃饭了……

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值