C#客户端程序Visual Studio远程调试的方法详解
作者:大头BigHead 发布时间:2022-10-20 19:13:54
一,需求来源
在开发过程中,可能会要使用Win7 ,Win8 ,Win10等不同版本的系统去做兼容性调试,也有时候会去针对特别的显卡,无线网卡等等硬件设备的机器做优化,有一种较优的方案,那就是使用Visual Studio的远程调试功能,可以直接将测试机作为调试目标,直接跟踪断点和异常,可以像在本机调试一样,迅速的找到错误的地方。,而不需要在测试机安装VS环境。
>传统桌面客户端的远程调试相比UWP,ASP等项目来说,配置比较麻烦,因为它是非部署的应用程序,原理是复制编译的文件到远程计算机,通过网络来连接和VS的通信,本文主要讲述WPF,WinForm应用程序的远程调试#
二,正文
①安装Remote Debugger#
右键Visual Studio->打开文件位置->找到当前目录下的Remote Debugger文件夹->复制粘贴到你的远程计算机中,运行远程计算机中想要平台的程序msvsmon.exe
运行msvsmon.exe,配置安全登录连接信息
②VS调试远程配置#
打开Visual Studio的项目属性,在调试一栏中勾选使用远程计算机,输入在上图中显示的远程计算机名和端口号
③远程调试目录的配置#
在远程计算机中新建一个Debug目录,要求和安装了VS的机器中的Debug路径一模一样
上图是远程机器
上图是调试机器
右键此共享Debug文件夹选择属性,并将共享设置为EveryOne。
复制本机最新编译的Debug文件夹到远程机器的Debug目录下
蠢方法:编译成功后-复制-粘贴到远程计算机中
酷方法:在VS的生成事件中,设置后期生成事件命令行(如下图)
rem 这里的XXX请自行换成IP和项目对应的目录
xcopy $(SolutionDir)\Bin\Debug \\192.168.XX.XX\xxx\Bin\Debug\ /E /Q /Y
④远程运行#
点击VS的运行,可以看到远程计算机的远程目录中,开始有新的文件产生,等到复制完毕之后,会弹出提示框,要求输入远程计算机的用户名和密码进行验证
一会儿之后,远程计算机的屏幕上就出现了软件的界面
注意
①确保远程计算机和开发机器处于同一局域网
②确保Visual Studio版本一致性,如电脑安装了2015,2017的,在复制Romote Debugger的版本和实际开发的VS版本要求一致
③共享文件夹的访问权限,确保为EveryOne的可读写
来源:https://www.cnblogs.com/Big-Head/p/11510482.html
猜你喜欢
- 一:什么是SparkSQL?(一)SparkSQL简介Spark SQL是Spark的一个模块,用于处理结构化的数据,它提供了一个数据抽象D
- MapReduce的原理MapReduce由两个主要阶段组成:Map和Reduce。在Map阶段中,数据集被分成若干个小块,每个小块由Map
- SpringBoot后台如何实现文件上传下载?最近做的一个项目涉及到文件上传与下载。前端上传采用百度webUploader插件。有关该插件的
- 前言请看下面几个问题Spring为什么不推荐使用@Autowired 注解?为什么推荐使用@Resource 代替&nb
- 目录一,功能二,工具三、效果图:四、数据库设计五、JAVA层次分析六、主要Java代码分析一,功能管理员登录图书借阅信息管理图书信息管理管理
- SpringCloud 整合ribbon的时候出现了这个问题java.lang.IllegalStateException: No inst
- 背景SpringBoot的应用监控方案比较多,SpringBoot+Prometheus+Grafana是目前比较常用的方案之一。它们三者之
- 简介在实现登录功能时,一般为了安全都会设置验证码登录,为了防止某个用户用特定的程序暴力破解方式进行不断的尝试登录。常见验证码分为图片验证码和
- 目录问题案例原因分析源码分析解决方法备注问题案例来个简单点的例子public static void main(String[] args)
- java LRU(Least Recently Used )详解LRU是Least Recently Used 的缩写,翻译过来就是“最近最
- 前言最近看了内部类后,总结一下,首先内部类嵌套在其他内部的类,根据出现的位置和关键字,可以分为以下四种类:成员内部类,静态内部类,方法内部类
- 前后端分离开发中,一般都会遇到请求跨域问题。而且一般也会遇到登陆失效问题。今天就以springboot和vue为例来看如何解决上述问题增加过
- 从Java 5开始,Java语言对方法参数支持一种新写法,叫 可变长度参数列表,其语法就是类型后跟...,表示此处接受的参数为0到多个Obj
- (一) collection和collections这两者均位于java.util包下,不同的是:collection是一个集合接口,有Li
- 1:先检查 字段有没有加上注解 @TableField(fill = FieldFill.INSERT_UPDATE)@TableField
- 一、简介BeanPostProcessor是Spring IOC容器给我们提供的一个扩展接口。实例化Bean做前置处理、后置处理二、接口定义
- Sentinel数据双向同步上面实现了Nacos单向同步配置规则到Sentinel,但是只是单向的,没有实现Sentinel向Nacos同步
- 简单几步,实现SpringMVC+servlet3.0文件上传功能:第一步:配置web.xml文件中的servlet,添加multipart
- 一、先来分别介绍一下ArrayList,Hashtable,List<T>,Dictionary<K,V>1.Arr
- PROPAGATION_REQUIRED: 如果存在一个事务,则支持当前事务。如果没有事务则开启事务;PROPAGATION_REQUIRE