dotnet core 項目腳手架這種小事嘛...

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。

目標 FrameworkTFM
.NET Standard netstandard1.0
netstandard1.1
netstandard1.2
netstandard1.3
netstandard1.4
netstandard1.5
netstandard1.6
netstandard2.0
.NET Core

netcoreapp1.0
netcoreapp1.1
netcoreapp2.0
netcoreapp2.1
netcoreapp2.2

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   解決方案

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章