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, ...
随机推荐
- LeetCode-2038 如果相邻两个颜色均相同则删除当前颜色
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-colored-pieces-if-both-neighbors-are-the-s ...
- .Babylon格式的模型转化为glb模型,并使用ThreeJS加载显示
问题描述:手里有几个.babylon格式的三维模型,但是没用过babylon,只对ThreeJS熟悉:但是最新的ThreeJS里发现已经没有BabylonLoader的加载器,能查到的暮志未晚提供的例 ...
- 野火FreeRTOS第九章(任务延时列表)实验意外解决办法
书中说:main()函数内容与第8章一样,无需改动. 但实际代码中,添加了在开启调度前关闭中断的函数,如下红色代码所示: int main(void) { /* 硬件初始化 */ /* 将硬件相关的初 ...
- xlwings rest api
https://pbihub.cn/blog/964/created_at https://docs.xlwings.org/zh_CN/latest/rest_api.html xlwings &g ...
- 找出一组数中出现次数最多的数(csp201312-1)
问题描述:找出一组数字出现次数最多的数,如果有多个这样的数,输出其中最小的一个. 算法:sort排序,遍历数组,每遍历一个数,查出它已经出现的次数. 代码: #include<bits/stdc ...
- 前端使用axios如何提交表单请求
//使用FormData创建参数 let formData = new FormData(); formData.append("jsonData", JSON.stringify ...
- oracle 2个数组列,剔除数组重复的数据。
一.下面这样不规则的,数据如何剔除掉.循环筛选replace替换掉. 序号 正常时间 剔除时间 1 2022-12-19,2022-12-20,2022-12-21,2022-12-22,202 ...
- CentOS 7 yum安装MongoDB
1.配置MongoDB的yum源 cd /etc/yum.repos.d vim mongodb-org-6.0.repo 2.添加下载配置文件(这里使用阿里云的源),保存退出 [mngodb-org ...
- 蓝牙mesh组网实践(手机配网例程改低功耗)
目录 在22年7月版本的CH583EVT更新之后,582芯片的adv_vendor_self_provision_with_peripheral例程,适配了wch mesh手机app,支持了OTA,成 ...
- uni消息推送
//APP.vuegetUser(){//获取客户端标识 消息推送 // #ifdef APP-PLUS var pinf = plus.push.getClientInfo(); var cid = ...