一键生成dotnet5项目解决方案
> 作为一名从2002年.Net 1.0一路走来的老码农,也持续跟进了dotnet core 1.0~3.1的变革,并不离不弃的玩起了dotnet 5。
每次接到新项目,都要从头搭建项目解决方案,简单的三层框架虽说不难,但搭一搭也要花不少时间,逻辑分层,项目之间的引用关系总要分一下的。为了提高效率,就把这些繁琐的工作交给脚本吧!
自动生成.net5项目解决方案的核心是dotnet命令,命令的详细用法请参考官方文档:https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet
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 | 使用测试运行程序运行测试。 |
请复制脚本另存为文本文件,改名如:DotNet5.Demo.bat,其中文件名就是解决方案的名字,运行批处理后,会自动创建如图所以的.net5解决方案。大家可以根据自己的实际需求修改脚本。

@echo 请修改批处理文件名后,如:Example.Core ,注释掉goto end,再执行脚本
@pause set name=%~n0 ::goto end mkdir %name%.Model
cd %name%.Model
dotnet new classlib --framework net5.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 net5.0
dotnet add package log4net
dotnet add package Newtonsoft.Json
cd .. mkdir %name%.DAL
cd %name%.DAL
dotnet new classlib --framework net5.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 net5.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 AutoMapper.Extensions.Microsoft.DependencyInjection
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 :sln ::创建解决方案,并把所有工程项目加入解决方案
dotnet new sln -n %name% dotnet sln %name%.sln add %name%.Api/%name%.Api.csproj --solution-folder 01Web
dotnet sln %name%.sln add %name%.BLL/%name%.BLL.csproj --solution-folder 02Business
dotnet sln %name%.sln add %name%.DAL/%name%.DAL.csproj --solution-folder 02Business
dotnet sln %name%.sln add %name%.Model/%name%.Model.csproj --solution-folder 02Business
dotnet sln %name%.sln add %name%.General/%name%.General.csproj --solution-folder 03Common
dotnet sln %name%.sln add %name%.Service/%name%.Service.csproj --solution-folder 04Service
dotnet sln %name%.sln add %name%.Test/%name%.Test.csproj --solution-folder 05Test
dotnet sln %name%.sln add %name%.Tools/%name%.Tools.csproj --solution-folder 06Tools ::for /d %%i in (*) do (
::echo %%i
::dotnet sln %name%.sln add %%i/%%i.csproj
::) ::编译解决方案
dotnet build :end @echo 构建完成,按任意键退出。
@pause
一键生成dotnet5项目解决方案的更多相关文章
- koa2学习笔记01 - 创建项目 —— koa生成器一键生成koa项目
前言 从17年开始尝试学习搭建个人网站开始,就开始学习摸索node了,至今差不多快两年了. 说起来现在都9102年了,所以最近打算整体设计重构一下网站,索性node后台也重写一遍. 重温一下node, ...
- 开源框架 WebFirst 一键生成项目,在线建表
1.WebFirst框架描述 WebFirst 是果糖大数据团队开发的新一代 高性能 代码生成器&数据库设计工具,由.net core 3.1 + sqlsugar 开发 导入1000个表只 ...
- vs2012生成的项目,如何在只装有VS2010的电脑上打开
步骤: 1.用记事本打开Vs2012生成的项目解决方案文件(.sln文件)文件 2.修改前两行 Microsoft Visual Studio Solution File, Format Versio ...
- Visual Studio中没有为此解决方案配置选中要生成的项目
问题: Visual Studio点击"生成解决方案"时,出现"没有为此解决方案配置选中要生成的项目". 解决方法: 菜单->生成->配置管理器-& ...
- 一键生成koa/koa2项目:
一键生成koa/koa2项目: 1. npm install -g koa-generator 2.新建项目目录 koa mytest (koa1项目) koa2 koa2test (koa2项目) ...
- node-gyp 在此解决方案中一次生成一个项目。若要启用并行生成,请添加“/m”开关。
在此解决方案中一次生成一个项目.若要启用并行生成,请添加“/m”开关. MSBUILD : error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”.要解决此问题, ...
- VSCode 初次写vue项目并一键生成.vue模版
VSCode 写vue项目一键生成.vue模版 1.新建代码片段 文件-->首选项-->用户代码片段-->点击新建代码片段--取名vue.json 确定 2.配置快捷生成的vue模板 ...
- [Java 开源项目]一款无需写任何代码,即可一键生成前后端代码的工具
作者:HelloGitHub-小鱼干 JeecgBoot 是一款基于代码生成器的低代码开发平台,零代码开发.JeecgBoot 采用开发模式:Online Coding 模式-> 代码生成器模式 ...
- VS中没有为此解决方案配置选中要生成的项目
菜单->生成->配置管理器->给要生成的项目打钩
随机推荐
- Java volatile 关键字底层实现原理解析
本文转载自Java volatile 关键字底层实现原理解析 导语 在Java多线程并发编程中,volatile关键词扮演着重要角色,它是轻量级的synchronized,在多处理器开发中保证了共享变 ...
- Mac上的Redis安装和使用
redis简介 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库. Re ...
- 第46天学习打卡(四大函数式接口 Stream流式计算 ForkJoin 异步回调 JMM Volatile)
小结与扩展 池的最大的大小如何去设置! 了解:IO密集型,CPU密集型:(调优) //1.CPU密集型 几核就是几个线程 可以保持效率最高 //2.IO密集型判断你的程序中十分耗IO的线程,只要大于 ...
- 基于SaaS平台的iHRM项目的前端项目介绍
1.下载安装node.js 访问https://nodejs.org/en/,然后下载安装即可 2. 查看是否安装成功 打开cmd命令行,输入node -v 如果出现对应的版本号,即为安装成功 3.从 ...
- 基于docker搭建jenkins
一.概述 Jenkins 的前身是 Hudson 是一个可扩展的持续集成引擎.Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各 ...
- 【python3】 解:import导包机制
模块和包 模块:我们定义的.py结尾的文件就是一个模块,模块中通常定义了类.方法.变量等一系列功能: 包:存放模块的文件夹,含有init.py文件,定义path属性. import语句的作用 impo ...
- DS线段树优化最短路&&01bfs浅谈
1简介 为什么需要?原因很简单,当需要有大量的边去连时,用线段树优化可以直接用点连向区间,或从区间连向点,或从区间连向区间,如果普通连边,复杂度是不可比拟的.下面简单讲解一下线段树(ST)优化建图. ...
- 剑指 Offer 12. 矩阵中的路径 + 递归 + 深搜 + 字符串问题
剑指 Offer 12. 矩阵中的路径 题目链接 题目类似于迷宫的搜索. 需要注意的是,需要首先判断起始搜索的位置,可能有多个起点,都需要一一尝试. 每轮迭代的时候记得将是否遍历标记数组还原为未遍历的 ...
- Java基础学习--集合
集合 List集合的特点 1.有序的数据集合,存储元素和取出元素的顺序是一致的(存储123,取出123) 2.有索引,包含了一些带索引的方法 3.允许存储重复的元素 List接口中带索引的方法 add ...
- rest framework Response
回应 不同于基本的HttpResponse对象,TemplateResponse对象保留先前由视图提供给计算响应上下文的细节.该响应的最终输出,不计算直到需要它,以后在响应过程. - Django文档 ...