引言  

  关注博主的网友会看到我使用ASP.NET Core 容器化部署企业级项目的过程, 回想到开发过程中,鄙人有一些工程化心得, 分享给同学们。

项目工程化

  因为本项目涉及单元测试Project、容器化部署、本地化的sqlite数据库,nlog日志, 因此有必要给出我的Visual Studio 2019 解决方案目录:

需要理解几点:

① 建立container文件夹

  该专门存放容器化部署相关的文件, 将开发内容和部署内容分开是一种DevOps实践, 同时也为我们以后实现CI/CD做些许铺垫。

  小技巧:  在使用Visual Studio的时候,可建立与以上文件件同名的解决方案文件夹, 这样便于开发人员编写部署脚本。

② 编写git ignore 文件

  网上很多大牛分享过git的操作技巧,add, commit, push, checkout、merge 相信很多开发人员烂熟如心。

但是作为企业级工程,多少会涉及一些不需要代码仓库管理的文件(密钥文件、临时文件、 本地数据库文件、 日志文件), 这就涉及git ignore的用法,更丰富的官方文档在这里: https://git-scm.com/docs/gitignore

这个操作很多时候是由架构师一次性配置完成, 很多开发同学没有实操过, 今天我们也来玩弄一下。

// 在解决方案.sln 同级目录下编写的.gitignore文件:忽略vs user file,nuget package,temp files *.suo*.userpackages.vs.nugetcontainer/app/publish/* 
//  在EqidManager项目文件夹下编写.gitignore文件:忽略localdb,logs,temp files*.suo*.userbinobjinternal-nlog.txtEqidManager.dbhealthchecksdb

③  编写WebDeploy Publish Profile

  container文件夹中包含app和nginx的镜像准备文件和对应的Dockerfile,这里我们关注 app/publish文件夹, 里面将会存放本次应用程序的最终可执行文件。

使用WebDeploy部署的时候 ,在该路径生成部署文件,便于统一管理, 产生的FolderPublish.pubxml 如下:

<?xml version="1.0" encoding="utf-8"?><!--此文件由 Web 项目的发布/打包过程使用。可以通过编辑此 MSBuild 文件自定义此过程的行为。为了解与此相关的更多内容,请访问 https://go.microsoft.com/fwlink/?LinkID=208121。 --><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">  <PropertyGroup>    <WebPublishMethod>FileSystem</WebPublishMethod>    <PublishProvider>FileSystem</PublishProvider>    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>    <LastUsedPlatform>Any CPU</LastUsedPlatform>    <SiteUrlToLaunchAfterPublish />    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>    <ExcludeApp_Data>False</ExcludeApp_Data>    <ProjectGuid>1213badd-176e-4c24-af84-bfdb0517b692</ProjectGuid>    <publishUrl>../../container/app/publish</publishUrl>    <DeleteExistingFiles>False</DeleteExistingFiles>  </PropertyGroup></Project>

<!--  关注黄色背景行,发布目录使用相对路径(相对于项目文件***.csproj的路径)--> 

  WebDeploy根据此配置会在工程目录container/app/publish下生成部署文件, 准备部署时可直接拷贝container文件夹, 生成镜像并形成容器。
  本文只是粗略分享 Devloper使用Visual Studio开发容器化项目的实践,CI/CD请持续关注。

原文地址:https://www.cnblogs.com/JulianHuang/p/10983973.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com 

Visual Studio容器项目工程化心得相关推荐

  1. visual studio创建项目时需要注意的问题

    visual studio创建项目时需要注意的问题 Win32项目中,只能使用WinMain函数 . Win32控制台程序中只能使用main函数 .

  2. Xamarin 中Visual Studio创建项目提示错误

    Xamarin 中Visual Studio创建项目提示错误 错误信息:Object reference not set to an instance of an object 出现这种情况,是由于没 ...

  3. visual studio 容器工具首次加载太慢 vsdbg\vs2017u5 exists, deleting 的解决方案

    visual studio 容器工具首次加载太慢 vsdbg\vs2017u5 exists, deleting 的解决方案 参考文章: (1)visual studio 容器工具首次加载太慢 vsd ...

  4. Visual Studio 2017项目进行打包并附加.net框架打包,菜鸟级安装教程

    VS2017项目打包安装教程 一.准备工作 1.安装Installer(若已经安装,则直接进行下一步) 二.打包可执行程序 1.创建setup打包项目 2.编辑Application Folder 3 ...

  5. DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版及制作Visual Studio C#项目模板文件详解...

    关于 DotNetBar for Windows Forms 12.9.0.0_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  6. 额的神啊~~可爱的Visual Studio把项目模板扔了

         机器环境:AMD Sempron 2200+:512M内存:Win2003 Enterprise Edition + SP1 +R2:Visual Studio 2005 Team Suit ...

  7. Visual Studio 2008项目打包问题——项目太大C盘空间不够怎么办?

    很多人在项目打包过程中都会遇到这样一个问题,数据库或者某个文件太大(几百兆甚至几个G),打包时Visual Studio会提示C盘存储空间不够.通常情况下,我们会选择采用分区软件重新分配给C盘更多的空 ...

  8. Visual Studio 2010 项目属性配置

    Visual Studio 2010使用方案管理项目,一个解决方案下可包含多个项目. 默认情况下,项目属性的设置的目录起点为项目配置文件所在的位置,实际上就是项目头文件和源文件所在的位置.Visual ...

  9. 为Visual Studio添加项目模板及项模板

    1 问题的引入 在做项目的时候,需要代码规范,版本信息不可或缺,但是每次在文件头COPY版本信息很麻烦,而且也不太容易控制.为了更好.更规范的去完成项目,需对项目文件做统一的格式来处理. 2 环境描述 ...

最新文章

  1. Eigen: C++开源矩阵计算工具——Eigen的简单用法
  2. blender 子弹时间 动画
  3. 用9*9的卷积核分类9*9的图片
  4. mos管结电容等效模型_为什么我的mos管炸了???
  5. hbase删除表失败的解决方法
  6. python第一周心得_python第一周心得-Go语言中文社区
  7. ArrayList的底层实现原理
  8. 【震撼】《京东技术解密》获众大神集体推荐,4千人10年经验一次放送
  9. Linux内核编程入门hello,world!
  10. 计算机网络技术基础第二章答案,计算机网络技术基础各章节综合练习题及答案...
  11. python批量处理照片为可打印的黑底白字图片
  12. Linu下安装Jdk
  13. word中生成带方块的对勾
  14. 定制ROM不好用?Android原生系统用户暴涨2.5倍
  15. 票据ticket实现方式java代码_Java代码实践12306售票算法(二)
  16. MyBatis从入门到精通(一)—MyBatis基础知识和快速入门
  17. ixgbe 如何开启vf
  18. php获取客户端真实ip
  19. 【Microsoft Visual Studio 2010完成CLR窗体应用程序】计算器和画图板的设计
  20. cgb2111-day01

热门文章

  1. 谁能给我讲讲原理——视频弹幕游戏!!
  2. 因特网使用期限_Internet死亡时使用PC的其他方式
  3. 黑苹果不能imessage_如何修复iMessage在iOS 10中不显示消息效果
  4. Mycat 之 通过Keepalived 实现高可用
  5. shell脚本注意点
  6. mycat 双主 热切换
  7. 《编写高质量代码:改善c程序代码的125个建议》——建议14-2:在右移中合理地选择0或符号位来填充空出的位...
  8. MFC Attach()函数和Detach()函数
  9. OpenGL ES 3D 粒子系统小结
  10. 17款加速效率的CSS工具