C# WPF上位机开发(软件的发布和部署)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        软件编译完成之后,本地测试完之后,一般都要发布和部署到客户的电脑上面。客户电脑的配置未必和开发的电脑是一样的,所以实际部署的过程中可以会遇到很多的问题。甚至于说,简单的配置错误,都要花费大家很多的精力和时间去查找和订正。所以软件开发好只是第一步而已,能够快速、正确地去部署和配置也是重要的一个环节。

        软件发布或者部署,不仅仅是把IDE中Debug目录或者Release目录里面的内容,完整拷贝到客户的电脑上,而且还要做版本的匹配、参数的设置以及配套软件的安装。这个流程是任何时候都少不了的。不然,软件其实很难比较稳定地运行起来。

1、同步好.net framework版本

        不同的windows系统,支持的.net framework版本也不一样。这个时候,不同os上面能够最好安装相同版本的.net framework。如果不清楚相关版本,可以直接在VS IDE上面去查找,

2、记录好第三方库的版本

        由于使用了NuGet工具,我们可以下载到很多好用的第三方库,不过这个时候大家最好留意一下相关的第三方库的版本号。因为这些第三方库在质量上面其实是良莠不齐的,如果遇到相关问题没有办法解决的话,一定要及时升级相关的版本,甚至可能需要自己亲自下场去debug。另外,个人还是建议比较核心的第三方库尽量用c/c++语言去编写,这样可以降低一点被破解的风险。

3、数据库的安装

        很多上位机的安装是需要数据库支持的。如果是sqlite这种小型的数据库,那还比较简单。如果本身的数据库是mysql、oracle这种中大型数据库,那么对应数据库的版本信息最好也和开发电脑中的版本保持一致,这样可以减少不必要的麻烦。

4、配置文件的设置

        软件切换到新的电脑上面,很多配置都和之前是不一样的。这里面包括了ip、端口、功能、目录地址、用户名、密码等等,这部分一定要去认真分析,不要怕麻烦。因为配置文件本身而遇到的问题,几乎每一次部署的时候都会发生。而且在客户批量使用之前,最好先小规模使用,注意灰度测试,慢慢提升测试压力和测试强度,让上位机软件经受住考验之后,这才有可能长期、稳定、可靠地去运行。

        另外,大家还需要注意的是,不光业务软件需要配置,很多第三方库也需要配置。如果这方面内容确实比较多的话,一定要有写一个建议文档,或者是推荐方案。这样可以保证,不管谁拿到软件,都可以快速地把软件部署起来、使用起来。

5、log的设置

        本来log的设置,完全可以放在配置文件一节来说明的。但是实际上,log配置十分重要。它不仅仅是目录名、文件名修改这么简单。更重要的是,一个程序要想稳定地运行,在这之前肯定会遇到各种各样的问题。这是规律。而要解决这些问题的话,就肯定离不开log的帮助。当然除了闪退需要一些特殊的方法和手段去处理之外,大部分的问题、或者说一般的问题都是可以通过log来处理的。所以,不管什么时候,大家都要高度重视log的重要性。

        不光如此,我们的上位机很多时候还需要和其他同级供应商进行数据沟通,相互之间的联调肯定是少不了的。这个时候,log文件不光可以帮助自己定位错误,还能在关键的时候撇清自己的责任,成为自己最有力的证据。有过类似经验的同学,肯定可以明白刚刚说的这些内容代表着什么样地含义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 23day DDL常用约束,数据类型

目录 数据库的四种语言常用约束(DDL)创建格式PRIMARY KEY:主键约束FOREIGN KEY:外键约束主键外键 联合测试开始测试 NOT NULL:非空约束UNIQUE:唯一约束DEFAULT:默认值约束zerofill 零填充auto_i…

自制数据库空洞率清理工具-C版-01-EasyClean-V1.0(支持南大通用数据库Gbase8a)

目录 一、环境信息 二、简述 三、支持功能 四、空洞率 五、工具流程图 六、安装包下载地址 七、参数介绍 1、命令模板 2、命令样例 3、参数表格 八、安装步骤 1、配置环境变量 2、生效环境变量 3、检验动态链接是否正常 九、运行效果 一、环境信息 名称值CPUInt…

Windows电脑向ipad和iOS系统共享文件夹

Windows电脑向ipad和iOS系统共享文件夹 这个方案不需要下载任何软件,但是要求 iOS 和 Windows 在同一个局域网内。再大的文件都可以在 iOS13 自带的的“文件App”里实时显示,可以直接打开。这个解决方案需要你 Windows 电脑上登陆了微软账号&#xff0c…

原生JavaScript实现 元素全屏与退出全屏效果

之前写过 前端screenfull实现界面全屏展示功能 突然发现自己犯傻了 其实元素js中就有全屏与取消全屏的方式 html代码如下 <!DOCTYPE html> <html> <head><title>全屏实验</title><style></style> </head> <body><d…

数据结构考试测试编程题

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

小程序常用实用例子

拍照 // 选择照片 ChooseImage() { wx.chooseImage({ count: 4, //默认9 sizeType: [original, compressed], //可以指定是原图还是压缩图&#xff0c;默认二者都有 sourceType: [album], //从相册选择 success: (res) > { if (this.data.imgList.length ! 0) { this.setDa…

Qt不能在线程函数操作UI

Qt的官方文档虽然并没有明确说明&#xff0c;不能在子线程中操作UI&#xff0c;但是&#xff0c;因为Qt是事件循环机制&#xff0c;所有的UI事件都是在主线程中处理的&#xff0c;如果在子线程中直接操作UI&#xff0c;就会存在线程安全问题&#xff0c;严重时候会使程序挂掉。…

flutter开发实战-第一帧布局完成回调实现

flutter开发实战-第一帧布局完成回调实现 在开发中&#xff0c;我们有时候需要在第一帧布局完成后调用一些相关的方法。这里记录一下是实现过程。 Flutter中有多种不同的Binding&#xff0c;每种Binding都负责不同的功能。下面是Flutter中常见的Binding&#xff1a; 这里简单…

nginx userid到底做了啥?

我们公司在用nginx的userid模块作为简单的用户请求追踪使用。这个模块其实并不能真正记录用户的请求状态&#xff0c;只能作为一个辅助使用。但是在一些场景下会有一些异常。下面我们简单介绍一下这个模块到底做了什么。 userid 模块简介 官网说明文档 ngx_http_userid_modul…

Course Shell of Missing Semester(一)

〇、前言 本文是 The Missing Semester of Your CS Education 课程的课后题答案&#xff0c;课程网站点击这里&#xff0c;以后系列文章不再描述前言。 本文实验环境&#xff1a;阿里云Ubuntu 22.04 Course shell 1、本课程需要使用类Unix shell&#xff0c;例如 Bash 或 Z…

【三维生成与重建】ZeroRF:Zero Pretraining的快速稀疏视图360°重建

系列文章目录 题目&#xff1a;ZeroRF: Fast Sparse View 360◦ Reconstruction with Zero Pretraining 任务&#xff1a;稀疏重建&#xff1b;拓展&#xff1a;Image to 3D、文本到3D 作者&#xff1a;Ruoxi Shi* Xinyue Wei* Cheng Wang Hao Su &#xff0c;来自UC San Dieg…

c语言link

下面2个编译命令有何不同&#xff1a; 1. gcc a.o -L./ -lmm -o run 2. gcc -L./ -lmm a.o -o run a.o 依赖于libmm.a, 也就是说a.o 调用了libmm.a中的函数&#xff0c;今天在编码时&#xff0c;发现用第2种方式&#xff0c;链接时会报错&#xff0c;提示符号A没有定义, 但…

鸿蒙OS4.0开发学习路线以及注意点

学习鸿蒙OS 4.0开发需要掌握一系列的技能和知识&#xff0c;以下是一个较为详细的学习路线以及注意点&#xff1a; 基础知识准备 了解鸿蒙OS&#xff1a;首先需要对鸿蒙OS有一个基本的了解&#xff0c;包括其特点、架构和应用领域。 掌握Java和C编程语言&#xff1a;这两种编…

layui监听复选框checkbox选中,分页选中处理

具体实现代码如下&#xff08;需要关注三个位置&#xff1a;done表格加载完毕方法&#xff0c;cols中复选框栏定义&#xff0c;table.on中对复选框选中或取消的状态定义&#xff09;这三个地方的代码直接复制去用就行了 最终选中的数据id为&#xff1a;ids <script>layu…

为实体服务器配置Ubuntu

简介 我们在使用虚拟机时&#xff0c;直接在网上找到镜像然后下载到本地&#xff0c;在VMware创建实例时将该iso文件作为镜像源然后进行基础配置就可以轻松安装配置好Linux虚拟机。 在为实体服务器安装Linux系统&#xff0c;同样的&#xff0c;我们也需要镜像源&#xff08;即…

Jmeter多种定时器实现方法解析

1、固定定时器&#xff08;Constant Timer&#xff09; 用法(场景)&#xff1a;更真实的模拟用户场景&#xff0c;需要设置等待时间&#xff0c;或是等待上一个请求的时间才执行&#xff0c;给 sampler 之间的思考时间 备注&#xff1a;如果需要每个步骤均延迟&#xff0c;则…

Python实现AR协方差结构线性回归模型(GLSAR算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 GLSAR是具有AR协方差结构的广义最小二乘法线性回归模型。 本项目通过GLSAR回归算法来构建AR协方差结构…

搭建 ElasticSearch 集群环境

安装基础环境 我们用虚拟机创建出3台机器&#xff0c;修改主机名为s1&#xff0c;s2和s3 # 打开如下文件&#xff0c;修改主机名 vim /etc/hostname # 重启机器 reboot查看centos版本为7.9 [roots1 ~]# cat /etc/centos-release CentOS Linux release 7.9.2009 (AltArch)下载…

常用的Makefile

文章目录 Makefile 单文件编译Makefile 多.c, .h文件编译 Makefile 单文件编译 # 定义变量 CC gcc CFLAGS -Wall -g# 默认目标 all: main# main 目标的依赖为 main.c main: main.o$(CC) $(CFLAGS) -o main main.o# 根据 main.c 文件生成 main.o 目标 main.o: main.c$(CC) $(…

【C语言】记录一次自己犯下的低级错误 o(╯□╰)o(局部数组与指针数组的传参、赋值)

在这里分享一下本人犯下的低级错误&#xff0c;希望大家别掉同样的坑 o(╥﹏╥)o 文章目录 事情原委错误分析及解救办法错误一&#xff1a; 使用局部数组arr并将其作为返回值解决方法&#xff1a;使用动态内存分配来创建数组&#xff0c;并在函数结束前手动释放内存。 错误二&…