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
最新目標框架版本
下表定義了最常見的目標框架、如何引用這些框架,以及它們實現的 .NET Standard 版本。 這些目標框架版本是最新的穩定版本。 預覽版不會顯示。 目標框架名字對象 (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 |
支持的目標框架版本
目標框架通常由 TFM 引用。 下表顯示 .NET Core SDK 和 NuGet 客戶端支持的目標框架。 等效項顯示在括號內。 例如,win81
對於 netcore451
來說等效於 TFM。
目標 Framework | TFM |
---|---|
.NET Standard | netstandard1.0 netstandard1.1 netstandard1.2 netstandard1.3 netstandard1.4 netstandard1.5 netstandard1.6 netstandard2.0 |
.NET Core | netcoreapp1.0 netcoreapp3.0 |
.NET Framework | net11 net20 net35 net40 net403 net45 net451 net452 net46 net461 net462 net47 net471 net472 net48 |
Windows 應用商店 | netcore [netcore45] netcore45 [win] [win8] netcore451 [win81] |
.NET Micro Framework | netmf |
Silverlight | sl4 sl5 |
Windows Phone | wp [wp7] wp7 wp75 wp8 wp81 wpa81 |
通用 Windows 平台 | uap [uap10.0] 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 | 在計算機上更新全局工具。 |
其他工具
自 .NET Core SDK 2.1.300 開始,許多使用 DotnetCliToolReference
的僅在每個項目的基礎上可用的工具現作為 .NET Core SDK 的一部分提供。 下表中列出了這些工具:
工具 | 函數 |
---|---|
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 匹配 。
此命令包含默認的模板列表。 使用 dotnet new -l
獲取可用模板的列表。 下表顯示了隨 .NET Core SDK 2.2.100 一起預安裝的模板。 模板的默認語言顯示在括號內。
模板 | 短名稱 | 語言 | 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 |
解決方案 |