打包C#软件两种典型出错的解决方法,以及如何快速定位你的问题出在哪里
本文受众:像我一样的编程菜鸟
如何打包一个C#的方法网上有很多,不再赘述,看本文之前请确保知道怎么使用set up project插件,不懂得看这里。
废话:编程的快感来自于很多方面,对于像我一样的菜鸟来说,跑通程序,并且能实现功能的时候是很爽的。这时候我们就希望把程序打包出来给其他人安装让他们一起爽,但是这个过程往往并不顺利。简单程序打包成安装包会十分顺利,但是程序一复杂问题就来了。本文旨在介绍我打包程序中遇到的典型问题以及我的解决方法。延续大家的快感
我遇到的问题:debug模式下程序没问题,但是打包成安装包安装之后,双击exe程序闪退,一脸懵逼也不知道问题出在哪里
结论写在前面,初学者容易出现的问题有:
- 未添加调用的文件,或者路径错误(解决方法,在Set up project下的文件系统里面手动添加文件夹和文件,并相应地调整你的路径确保能调用到)
- 如果程序还是因为找不到文件崩溃,多半是因为你安装包生成的exe双击打开运行时权限不够(解决方法:右键管理员运行,或者你不要安装在C盘,安装到其他权限放松一些的磁盘)
以下是我如何定位问题所在,以及具体解绝办法
如何快速定位你的问题出在哪一行代码,以及是什么问题
粗略的估计一下程序执行到哪里崩溃,然后在每一行代码前加个
MessageBox.Show("something goes wrong here?");
确保你的程序不会直接崩溃退出进程,然后打开任务管理器,确保你能找到你的程序的进程,然后在visual studio里面点击Debug-attach to process
在弹出的窗口下选择你的进程,点击attach
这下你的编译器会跟着你的exe进程进行debug,就像你直接在debug模式下出错vs会报错给你一样,
你的VS会提醒你程序在哪里出了问题。(完)
打包C#软件两种典型出错的解决方法,以及如何快速定位你的问题出在哪里相关推荐
- jquery、javascript实现(get、post两种方式)跨域解决方法
jquery.javascript实现(get.post两种方式)跨域解决方法 一.实现get方式跨域请求数据 浏览器端 <script> $(document).ready(fun ...
- sap 标准委外和工序委外_委外加工-SAP的两种典型委外处理--方法.doc
两种典型委外处理 外包业务是一个普通的业务, 通常发生在1. 企业短期内订单过多暂时产能不足,为了如期交货需要外援2. 产品的某道关键工序企业自有生产工艺满足不了需求3.随着产品生命周期不断缩短,为了 ...
- sap 标准委外和工序委外_委外加工SAP的两种典型委外处理方法
通常提供两种基本处理方式 : 外包采购 和 工序外包 . 生产外包经营方式简介 生产外包作为一种全新的生产经营方式,改善了传统方式的不足,主要类型有: 一 .OEM : (Orignal Equipm ...
- idea 使用 Docker 打包镜像的两种方式_07
idea 使用 Docker 打包镜像的两种方式_07 一.方式: 一.idea 的docker 插件 和Dockerfile: 二.pom和Dockerfile结合. 二.详解 第一种: 1.第一步 ...
- android内存池,两种常见的内存管理方法:堆和内存池
描述 本文导读 在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空 ...
- 两种常见的内存管理方法:堆和内存池
在程序运行过程中,可能产生一些数据,例如,串口接收的数据,ADC采集的数据.若需将数据存储在内存中,以便进一步运算.处理,则应为其分配合适的内存空间,数据处理完毕后,再释放相应的内存空间.为了便于内存 ...
- 两种 js下载文件的方法(转)
2019独角兽企业重金招聘Python工程师标准>>> 两种 js下载文件的方法(转) functionDownURL(strRemoteURL, strLocalURL){try{ ...
- 电脑录屏工具_一分钟教你学会两种电脑录屏的方法,以后别再说不知道了
相信大家用电脑都会截图,但有时候需要用到录屏,这就难倒了很多人.那么如何在电脑是录屏呢?下面就来教你学会两种电脑录屏的方法,以后别再说不知道了. 阅读引导: •阅读完本文预计需要2分钟时间. •本文是 ...
- 如何去除视频水印?分享两种去除视频水印的方法
怎么去除掉视频的水印呢?视频水印可能会导致视觉上的干扰,尤其是当水印被放置在视频的重要区域时,例如在视频的中心或底部.此外,在视频制作过程中使用有水印的素材也可能会影响最终的视频质量,因为水印可能会干 ...
最新文章
- CGI模式,模块模式与CLI模式运行PHP的区别
- 寻路基本工具类定义 AIDefine.cpp
- 两个数组的交集 II---简单
- 基于JAVA+SpringMVC+MYSQL的网上选课系统
- (c语言)输出1到100之间的所有素数
- Java检查字符串是否包含中文字符
- 50.Linux/Unix 系统编程手册(下) -- 虚拟内存操作
- 19.TCP/IP 详解卷1 --- TCP 的交互数据流
- Hadoop学习路径
- 怎么查看电脑IP地址?
- 电脑开启麦克风有回音,录音声音太小怎么办?
- K8s 开先河、技能全栈、业务“无感”,深度解读云原生的这一年
- monkey命令——压力测试——个人总结
- Imagination利用精简操作集计算(ROSC)技术实现灵活、高性能的神经网络推理
- spring-boot-starter-quartz 添加定时任务立即执行一次的问题解决
- Java之List系列--ArrayList保证线程安全的方法
- 阿里M8级大神整理出SQL手册:收获不止SQL优化,抓住SQL的本质
- 西瓜书(周志华)课后习题答案
- AI+智能服务机器人应用基础【学习报告】
- 吐槽下Arcgis的二次开发
热门文章
- adb命令设置输入法
- canvas 添加文字水印、图片水印并实现图片水印透明
- c语言运行不显示图片,为何加载烟花就换了一句,将图片加载进资源,结果运行中烟花不显示...
- Ubuntu To Go,打造随身linux系统(支持uefi启动)。同样支持WinToGo或其他可通过镜像安装的系统
- 还不知道如何写文章上热榜吗?听1_bit大佬给你讲讲
- 登榜丨酷雷曼获“科技型中小企业”国家级认定
- 一群小青蛙呱蹦呱蹦呱
- 批处理bat提示 文件名、目录名或卷标语法不正确
- LigoWave品牌的产品分类及项目选型
- Ubuntu16.04LTS部署CEPH文件存储集群