dotnet core脚手架批处理.bat
@echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本 pause goto end ::goto end set name=%~n0 mkdir %name%.Model cd %name%.Model dotnet new classlib --framework netcoreapp3.0 dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Dapper dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.Relational dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Microsoft.EntityFrameworkCore.Tools cd .. mkdir %name%.General cd %name%.General dotnet new classlib --framework netcoreapp3.0 dotnet add package log4net dotnet add package Newtonsoft.Json cd .. mkdir %name%.DAL cd %name%.DAL dotnet new classlib --framework netcoreapp3.0 dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Dapper dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core cd .. dotnet add %name%.DAL/%name%.DAL.csproj reference %name%.Model/%name%.Model.csproj mkdir %name%.BLL cd %name%.BLL dotnet new classlib --framework netcoreapp3.0 dotnet add package log4net dotnet add package Newtonsoft.Json cd .. dotnet add %name%.BLL/%name%.BLL.csproj reference %name%.Model/%name%.Model.csproj dotnet add %name%.BLL/%name%.BLL.csproj reference %name%.General/%name%.General.csproj dotnet add %name%.BLL/%name%.BLL.csproj reference %name%.DAL/%name%.DAL.csproj mkdir %name%.Api cd %name%.Api dotnet new webapi dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Autofac dotnet add package Autofac.Extensions.DependencyInjection dotnet add package AutoMapper dotnet add package Dapper dotnet add package Microsoft.Extensions.Options dotnet add package Microsoft.Extensions.Caching.Abstractions dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.Relational dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Microsoft.EntityFrameworkCore.Tools cd .. dotnet add %name%.Api/%name%.Api.csproj reference %name%.Model/%name%.Model.csproj dotnet add %name%.Api/%name%.Api.csproj reference %name%.General/%name%.General.csproj dotnet add %name%.Api/%name%.Api.csproj reference %name%.BLL/%name%.BLL.csproj goto :next mkdir %name%.Web cd %name%.Web dotnet new mvc dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Autofac dotnet add package Autofac.Extensions.DependencyInjection dotnet add package AutoMapper dotnet add package Dapper dotnet add package Microsoft.Extensions.Options dotnet add package Microsoft.Extensions.Caching.Abstractions dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core dotnet add package Microsoft.EntityFrameworkCore dotnet add package Microsoft.EntityFrameworkCore.Relational dotnet add package Microsoft.EntityFrameworkCore.Design dotnet add package Microsoft.EntityFrameworkCore.Tools cd .. dotnet add %name%.Web/%name%.Web.csproj reference %name%.Model/%name%.Model.csproj dotnet add %name%.Web/%name%.Web.csproj reference %name%.General/%name%.General.csproj dotnet add %name%.Web/%name%.Web.csproj reference %name%.BLL/%name%.BLL.csproj :next mkdir %name%.Test cd %name%.Test dotnet new console dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Dapper dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core cd .. dotnet add %name%.Test/%name%.Test.csproj reference %name%.Model/%name%.Model.csproj dotnet add %name%.Test/%name%.Test.csproj reference %name%.General/%name%.General.csproj dotnet add %name%.Test/%name%.Test.csproj reference %name%.BLL/%name%.BLL.csproj dotnet add %name%.Test/%name%.Test.csproj reference %name%.DAL/%name%.DAL.csproj mkdir %name%.Tools cd %name%.Tools dotnet new winforms dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Dapper dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core cd .. dotnet add %name%.Tools/%name%.Tools.csproj reference %name%.Model/%name%.Model.csproj dotnet add %name%.Tools/%name%.Tools.csproj reference %name%.General/%name%.General.csproj dotnet add %name%.Tools/%name%.Tools.csproj reference %name%.BLL/%name%.BLL.csproj dotnet add %name%.Tools/%name%.Tools.csproj reference %name%.DAL/%name%.DAL.csproj mkdir %name%.Service cd %name%.Service dotnet new grpc dotnet add package log4net dotnet add package Newtonsoft.Json dotnet add package Dapper dotnet add package Oracle.EntityFrameworkCore dotnet add package Oracle.ManagedDataAccess.Core dotnet add package Grpc dotnet add package Grpc.Tools dotnet add package Google.Protobuf cd .. dotnet add %name%.Service/%name%.Service.csproj reference %name%.Model/%name%.Model.csproj dotnet add %name%.Service/%name%.Service.csproj reference %name%.General/%name%.General.csproj dotnet add %name%.Service/%name%.Service.csproj reference %name%.BLL/%name%.BLL.csproj dotnet add %name%.Service/%name%.Service.csproj reference %name%.DAL/%name%.DAL.csproj ::创建解决方案,并把所有工程项目加入解决方案 dotnet new sln -n %name% for /d %%i in (*) do ( echo %%i dotnet sln %name%.sln add %%i/%%i.csproj ) ::编译解决方案 dotnet build :end
最新目标框架版本
目标框架名字对象 (TFM) 是一个标准化令牌格式,用于指定 .NET 应用或库的目标框架。
| 目标 Framework | 稳定版本 | 目标框架名字对象 (TFM) | .NET Standard 版本 |
|---|---|---|---|
| .NET Standard | 2.0 | netstandard2.0 | 不可用 |
| .NET Core | 2.2 | netcoreapp2.2 | 2.0 |
| .NET Framework | 4.8 | net48 | 2.0 |
支持的目标框架版本
例如,win81 对于 netcore451 来说等效于 TFM。
| 目标 Framework | TFM |
|---|---|
| .NET Standard | netstandard2.0 |
| .NET Core |
netcoreapp2.2 netcoreapp3.0 |
| .NET Framework | net48 |
| Windows 应用商店 | netcore451 [win81] |
| .NET Micro Framework | netmf |
| Silverlight | sl5 |
| Windows Phone | wpa81 |
| 通用 Windows 平台 | uap10.0 [win10] [netcore50] |
dotnet 命令
| 命令 | 函数 |
|---|---|
| dotnet build | 生成 .NET Core 应用程序。 |
| dotnet build-server | 与通过生成启动的服务器进行交互。 |
| dotnet clean | 清除生成输出。 |
| dotnet help | 显示命令更详细的在线文档。 |
| dotnet migrate | 将有效的预览版 2 项目迁移到 .NET Core SDK 1.0 项目。 |
| dotnet msbuild | 提供对 MSBuild 命令行的访问权限。 |
| dotnet new | 为给定的模板初始化 C# 或 F# 项目。 |
| dotnet pack | 创建代码的 NuGet 包。 |
| dotnet publish | 发布 .NET 依赖于框架或独立应用程序。 |
| dotnet restore | 还原给定应用程序的依赖项。 |
| dotnet run | 从源运行应用程序。 |
| dotnet sln | 用于添加、删除和列出解决方案文件中项目的选项。 |
| dotnet store | 将程序集存储到运行时包存储区。 |
| dotnet test | 使用测试运行程序运行测试。 |
项目引用
| 命令 | 函数 |
|---|---|
| dotnet add reference | 添加项目引用。 |
| dotnet list reference | 列出项目引用。 |
| dotnet remove reference | 删除项目引用。 |
NuGet 包
| 命令 | 函数 |
|---|---|
| dotnet add package | 添加 NuGet 包。 |
| dotnet remove package | 删除 NuGet 包。 |
NuGet 命令
| 命令 | 函数 |
|---|---|
| dotnet nuget delete | 从服务器删除或取消列出包。 |
| dotnet nuget locals | 清除或列出本地 NuGet 资源,例如 http 请求缓存、临时缓存或计算机范围的全局包文件夹。 |
| dotnet nuget push | 将包推送到服务器,并将其发布。 |
全局工具命令
.NET Core 全局工具可与 .NET Core SDK 2.1.300 一起开始使用:
| 命令 | 函数 |
|---|---|
| dotnet tool install | 在计算机上安装全局工具。 |
| dotnet tool list | 列出当前安装在计算机上的默认目录中或指定路径中的所有全局工具。 |
| dotnet tool uninstall | 从计算机中卸载全局工具。 |
| dotnet tool update | 在计算机上更新全局工具。 |
其他工具
下表中列出了这些工具:
| 工具 | 函数 |
|---|---|
| dev-certs | 创建和管理开发证书。 |
| ef | Entity Framework Core 命令行工具。 |
| sql-cache | SQL Server 缓存命令行工具。 |
| user-secrets | 管理开发用户机密。 |
| watch | 启动文件观察程序,以在更改文件时运行命令。 |
有关每个工具的详细信息,请键入 dotnet <tool-name> --help。
dotnet new
dotnet new - 根据指定的模板,创建新的项目、配置文件或解决方案。
dotnet new <TEMPLATE> [--dry-run] [--force] [-i|--install] [-lang|--language] [-n|--name] [--nuget-source] [-o|--output] [-u|--uninstall] [Template options] dotnet new <TEMPLATE> [-l|--list] [--type] dotnet new [-h|--help]
模板选项。
如果 TEMPLATE 值与“模板”或“短名称”列中的文本不完全匹配,则会对这两列执行 substring 匹配 。
模板的默认语言显示在括号内。
| 模板 | 短名称 | 语言 | Tags |
|---|---|---|---|
| 控制台应用程序 | console |
[C#]、F#、VB | 常用/控制台 |
| 类库 | classlib |
[C#]、F#、VB | 常用/库 |
| 单元测试项目 | mstest |
[C#]、F#、VB | 测试/MSTest |
| NUnit 3 测试项目 | nunit |
[C#]、F#、VB | 测试/NUnit |
| NUnit 3 测试项 | nunit-test |
[C#]、F#、VB | 测试/NUnit |
| xUnit 测试项目 | xunit |
[C#]、F#、VB | 测试/xUnit |
| Razor 页 | page |
[C#] | Web/ASP.NET |
| MVC ViewImports | viewimports |
[C#] | Web/ASP.NET |
| MVC ViewStart | viewstart |
[C#] | Web/ASP.NET |
| ASP.NET Core 空 | web |
[C#],F# | Web/空 |
| ASP.NET Core Web 应用程序 (Model-View-Controller) | mvc |
[C#],F# | Web/MVC |
| ASP.NET Core Web 应用程序 | webapp, razor |
[C#] | Web/MVC/Razor Pages |
| 含 Angular 的 ASP.NET Core | angular |
[C#] | Web/MVC/SPA |
| 含 React.js 的 ASP.NET Core | react |
[C#] | Web/MVC/SPA |
| 含 React.js 和 Redux 的 ASP.NET Core | reactredux |
[C#] | Web/MVC/SPA |
| Razor 类库 | razorclasslib |
[C#] | Web/Razor/库/Razor 类库 |
| ASP.NET Core Web API | webapi |
[C#],F# | Web/WebAPI |
| global.json 文件 | globaljson |
配置 | |
| NuGet 配置 | nugetconfig |
配置 | |
| Web 配置 | webconfig |
配置 | |
| 解决方案文件 | sln |
解决方案 |