EXE项目和DLL项目远程调试、Props设置说明
通用宏设置
exe项目根据
平台、配置设置输出路径;dll项目根据
平台、配置设置输出路径,dll文件、lib文件分别输出到自己的路径;中间文件根据
平台、配置、项目设置输出路径;设置
远程调试命令、远程工作目录、远程服务器目录、部署目录等;
Common.props,exe项目和dll项目添加。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
<AppOutDir>$(SolutionDir)_Bin\$(PlatformShortName)$(Configuration)</AppOutDir>
<DllOutDir>$(SolutionDir)_Dll\$(PlatformShortName)$(Configuration)\bin</DllOutDir>
<IntOutDir>$(SolutionDir)_Tmp\$(ProjectName)\$(PlatformShortName)$(Configuration)</IntOutDir>
<IncOutDir>$(SolutionDir)_Dll\inc</IncOutDir>
<LibOutDir>$(SolutionDir)_Dll\$(PlatformShortName)$(Configuration)\lib</LibOutDir>
<RemoteDbgCmd>C:\Bin\GlDevDemo\GlDevDemod.exe</RemoteDbgCmd>
<RemoteDbgWorkDir>C:\Bin\GlDevDemo</RemoteDbgWorkDir>
<RemoteServer>VMLINK001</RemoteServer>
<DeployDir>\\$(RemoteServer)\Bin\GlDevDemo</DeployDir>
</PropertyGroup>
<PropertyGroup>
<!-- exe、dll等文件输出的目录 -->
<OutDir Condition="'$(ConfigurationType)'=='Application'">$(AppOutDir)\</OutDir>
<OutDir Condition="'$(ConfigurationType)'=='DynamicLibrary'">$(DllOutDir)\</OutDir>
<!-- obj等中间文件输出的目录 -->
<IntDir>$(IntOutDir)\</IntDir>
<!-- 头文件目录 -->
<IncludePath>$(IncOutDir);$(IncludePath)</IncludePath>
<!-- 库文件目录 -->
<LibraryPath>$(LibOutDir);$(LibraryPath)</LibraryPath>
<!-- 输出文件的文件名 -->
<TargetName Condition="'$(Configuration)'=='Debug'">$(ProjectName)d</TargetName>
<TargetName Condition="'$(Configuration)'=='Release'">$(ProjectName)</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>
<Link>
<!-- 让lib在debug和release情况下名称相同,方便导入 -->
<ImportLibrary Condition="'$(ConfigurationType)'=='DynamicLibrary'">$(LibOutDir)\$(ProjectName).lib</ImportLibrary>
</Link>
</ItemDefinitionGroup>
</Project>
DLL项目宏设置
- 利用生成后事件复制
头文件、dll文件、pdb文件到指定文件夹;
PostBuild.props,dll项目添加。
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<PostBuildEvent>
<Command>@echo off
setlocal enabledelayedexpansion
rem 创建本项目的头文件路径
set dir="$(IncOutDir)"
if not exist %dir% (
md %dir%
)
rem 创建输出路径,确保路径存在
set dir="$(AppOutDir)"
if not exist %dir% (
md %dir%
)
rem 源文件
set src[0]="$(ProjectDir)GlXdma.h"
set src[1]="$(TargetPath)"
set src[2]="$(TargetDir)$(TargetName).pdb"
rem 目标文件
set dst[0]="$(IncOutDir)\GlXdma.h"
set dst[1]="$(AppOutDir)\$(TargetFileName)"
set dst[2]="$(AppOutDir)\$(TargetName).pdb"
rem 复制文件
for /L %%n in (0, 1, 2) do (
echo copy !src[%%n]! to !dst[%%n]!
copy !src[%%n]! !dst[%%n]!
)
</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
</Project>
添加属性
项目的属性管理器中添加好上面的Props文件

远程调试设置
项目->调试,选中
远程 Windows 调试器,按下图设置好
项目属性->部署

参考
- 另用
secpol.msc打开本地安全策略,添加账户作为服务登陆权限,以启用Visual Studio 2019 Remote Debugger服务:
经测试桌面程序不能用服务调试。

EXE项目和DLL项目远程调试、Props设置说明的更多相关文章
- JavaWeb项目的部署以及远程调试
Linux环境下软件的安装 Linux环境下的程序的安装.更新.卸载和查看. rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载. 本地程序安装:rpm -ivh 程序 ...
- springboot项目使用idea开启远程调试
远程调试是调试服务器的有效手段,远程服务器运行的应用可以在本地代码中打断点调试,能让开发人员准确定位服务器上的问题. 一.开启远程调试前提:本地代码与服务器代码一致, 二.开启远程调试步骤 1.开发工 ...
- 七. jenkins部署springboot项目(4)-linux环境--远程调试
前提:linux环境,jenkins服务器和springboot服务器不在一台机器. linux环境,jenkins这里就不说了,主要说下和windows环境的不同. 1. jenkins服务器连接s ...
- Eclispe远程调试tomcat设置
首先在catelina.sh中添加 JAVA_OPTS="$JAVA_OPTS -Xrunjdwp:transport=dt_socket,address=23787,server=y,su ...
- VS调试DLL项目代码
如果DLL有对应的lib文件,并且dll工程和调用它的exe属于同一个解决方案,直接打断点调试就可以.例如OSG解决方案中的例子程序可以直接调试osgUtil模块的代码. 如果A.exe项目和A.dl ...
- 看图说话,idea 远程调试 tomcat下项目
tomcat中部署了项目,准备测试远程调试. 1.配置idea 2. 修改catalina.bat,并启动tomcat catalina.bat: ...rem 下面的参数就是从idea配置中复制过来 ...
- Java项目开启远程调试(tomcat、springboot)
当我们运行一个项目的时候,一般都是在本地进行debug.但是如果是一个分布式的微服务,这时候我们选择远程debug是我们开发的利器. 环境apache-tomcat-8.5.16 Linux 如何启用 ...
- VC++ 6.0远程调试配置
VC开发环境之所以提供远程调试的能力,是因为有些情况下单机调试会让你崩溃掉...比如,调试GUI程序的WM_PAINT消息,因为要单步调试,所以调试器会对界面的重绘产生副作用(Heisenberg不确 ...
- DELPHI XE8 远程调试
最近公司项目遇到问题需要远程调试搜索了一下怎么用 发现网上能找到最新的是XE2上的说明现在已经有一些不同了 按照上面的方法不能调试成功 经过测试XE8的方法如下:1.项目编译设置:2.在被调试电脑上运 ...
- VS2010远程调试C#程序
场景: 客户的计算机运行程序出现异常,由于办公场所不在一起,无法直接在客户的机器上调试.此时希望可以直接在开发人员的计算机(本地机器)上远程调试客户机上的软件. 假设: 本地机器的系统账户为 GIS, ...
随机推荐
- 三分钟使用chatGPT
ChatGPT最近也是火爆出圈,网上已被刷屏. 今天我们说一下,使用ChatGPT的方法,很简单,只需要三步: 前期确保自己能访问google,IP地址为某些国家:否则检查会报错:Services a ...
- go 神奇的错误 time.Now().Format("2006-01-02 13:04:05") 比北京时间大8小时
困倦的时候写了个个获取本地时间,打印总比当前时间大8小时,找了很久原因 package main import ( "fmt" "time" ) func ma ...
- JZOJ 2022.07.06【提高组A】模拟
历程 被暴打了 原因是钻进了 \(T4\) 的坑中... 先看完题,发现 \(T4\) 比较有意思,\(T2\) 没有想法 \(T3\) 挺容易,做法似乎很好想 \(T1\) 送分,十几分钟搞定 然后 ...
- GPS地图生成02之经典算法体验
经典的利用轨迹生成地图的算法与数据集可寻找于:Mapconstruction by pfoser Mapconstruction by pfoser数据集中,雅典数据集投影坐标系为(UTM, GGRS ...
- Java处理正则匹配卡死(正则回溯问题)
目录 背景 项目现场问题 问题跟踪 优化方案 处理正则问题 使用子线程来匹配正则实现 监控线程实现 最优选择方案 参考文章 正则匹配卡死怎么来的? 背景 背景:这次问题的背景是项目上遇到了,在使用正则 ...
- LeetCode-1669 合并两个链表
来源:力扣(LeetCode)链接:https://leetcode.cn/problems/merge-in-between-linked-lists 题目描述 给你两个链表 list1 和 lis ...
- Linux新手渣渣上路史
Linux新手渣渣上路史 时至2022年,IT行业的迅速发展大家也有目共睹,IT行业在社会的发展中起着举足轻重的作用.其中一角Linux系统,从诞生到开源,再到现在受大众的欢迎,是一个很好的例子.Li ...
- WPF项目需要不断更新前台图片时,碰到“System.IO.IOException: 文件“xxx”正由另一进程使用“问题的解决
问题描述 项目中要求能不断拍照并更新显示图片,使用FileStream在本地创建了图片文件: 当下次重新拍照前删除之前拍过的图片时,提示"System.IO.IOException: 文件& ...
- 第五周作业-N67044-张铭扬
1. 搭建chrony服务完成多个主机的时间同步. [root@centos8 ~]# yum -y install chrony [root@centos8 ~]# vim /etc/chrony ...
- 【Direct3D 12】什么是Direct3D 12
什么是DirectX? Microsoft DirectX是一套图形API,可以用来创建游戏和高性能的图形应用.DirectX支持2D和3D图形. 什么是Direct3D 12? Direct3D是D ...