From 51c3cf066ce98ec3f8b852990fdb78eda67a4b34 Mon Sep 17 00:00:00 2001 From: zerlei <1445089819@qq.com> Date: Sun, 13 Oct 2024 20:12:54 +0800 Subject: [PATCH] =?UTF-8?q?doc:=20=E5=86=99=E4=BA=86readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 76 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 3b92baf..1bf2ba2 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,49 @@ -> 这是一个基于 asp.net c# 的发布工具。 +一个用于asp.net 项目集成发布的工具,它使用c#开发。它的作用是使不方便使用docker嵌入到现代CI/CD 流程的旧的asp.net framework 项目发布自动化。 -```bash -# 此行命令差一个运行环境复制。bin/roslyn -msbuild .\HMES-H7-HNFYMF.WEB\HMES_H7_HNFYMF.WEB.csproj /t:ResolveReferences /t:Compile /t:_CopyWebApplication /p:Configuration=Release /p:WebProjectOutputDir=C:\publish /p:OutputPath=C:\publish\bin +它的功能包含: +- asp.net 项目build。使用[msbuild](https://learn.microsoft.com/zh-cn/visualstudio/msbuild/walkthrough-using-msbuild?view=vs-2022) +- 基于文件修改时间的本地 -> 服务器 文件同步 +- 开发(或测试)sql server和生产 sql server 结构和特定表数据的同步 使用[sqlpackage](https://learn.microsoft.com/zh-cn/sql/tools/sqlpackage/sqlpackage?view=sql-server-ver16) +它的结构: -& "C:\Program Files\Microsoft Visual Studio\2022\Community\\MSBuild\Current\Bin\amd64\MSBuild.exe" D:/git/HMES-H7-HNFY/HMES-H7-HNFYMF/HMES-H7-HNFYMF.WEB/HMES_H7_HNFYMF.WEB.csproj /t:ResolveReferences /t:Compile /p:Configuration=Release /t:_CopyWebApplication /p:OutputPath=D:/FileSyncTest/src/bin /p:WebProjectOutputDir=D:/FileSyncTest/src +``` mermaid +flowchart TD +ConfigClient <---->|websocket 信息交换| LocalServer +subgraph 测试/开发服务器 +LocalServer --构建--> + id1{{源码}} +end +subgraph 生产服务器 +RemoteServer ---->|文件|pp((生产项目)) +end +LocalServer ---->|文件上传| RemoteServer +RemoteServer <---->|websocket 信息交换| LocalServer +RemoteServer ---->|同步|pdb[(生产数据库)] +LocalServer ---->|提取结构、数据| ddb +ddb[(开发/测试数据库)] - -# 此命令是一个完整的发布命令 - -msdeploy.exe -verb:sync -source:contentPath=D:\git\HMES-H7-HNFY\HMES-H7-HNFYMF\HMES-H7-HNFYMF.WEB -dest:contentPath=D:\git\HMES-H7-HNFY\HMES-H7-HNFYMF\release -disablerule:BackupRule + style pp fill:gray,stroke:#333,stroke-width:4px ``` -```plantuml -package 服务器 { +它的工作流程: - component remoteserver - note left : 1. windows server \n2. IIS部署 - component webtool -} -package 本地计算机 { - component localserver - note left : 1. windows 10/11 \n2. windows 服务 -} +1. 在`ConfigClient`中配置,通过websocket 将配置传递给`LocalServer`,并展示从`localserver` 来的过程信息。配置主要包含源码位置,同步的文件,数据库配置等 +2. `LocalServer` 根据配置连接 `RemoteServer`,构建项目,提取数据库信息,连接`RemoteServer`,与生产服务器的文件对比等。`LocalServer` 将差异文件和数据库压缩打包上传到生产服务器。 +3. `RemoteServer` 解压文件,进行发布操作。 -package asp.net [ -.net 8 ----- -sqlite ----- -http ---- -websocket -] +安全: -package webpage [ - vue3 - --- - naive-ui -] -asp.net --+ remoteserver -asp.net --+ localserver -webpage --+ webtool -``` +- 通信基于http,需要在在服务器开启特定的端口 +- LocalServer 与 RemoteServer 的通信使用AES加密 +- 差异问价加密压缩 + +使用环境: + +1. 项目基于.net 8.0.x,所以需要.net 环境 +2. 测试服务器需要完整的项目构建生产环境 +3. 需要sqlpackage来提取、发布数据库。 + + +具体详情[wiki](https://github.com/zhengyuanzhi/FileSqlServerSync/wiki)