VS编译完成后自动复制到远程机器

最近在调试网络通信,每次一有点小修改,都要将程序从开发机复制到测试机,不胜烦扰。既然我们程序猿,为什么要那么死板呢,能够用代码解决的问题,就不要用手去解决。



先说复制,我们除了手工复制就没有其他办法了吗?在命令提示符下面,我们用于管理文件和文件夹的命令多的是,比如RENAME、DEL、Copy用于文件,MKDIR、RMDIR、XCOPY用于目录。查看命令提示符的常用命令,我们可以通过在命令提示符中输入Help进行查看,如下图:

一般情况,我们都需要将整个目录复制过去,所以我用了XCOPY命令(如果只复制单个文件,也可以用COPY),XCOPY的常用参数如下:

等等,难道我们不是复制到远程机器上么?怎么这些命令全是在本机上操作呢?不要急嘛,我们不是可以把远程机器的目录共享出来,就像操作本机磁盘一样,这些命令也是适用的。



共享的步骤如下(熟悉的可直接跳过,以Win7系统为例):

  1. 在待共享的文件夹,在右键上单击属性,切换到共享选项卡
  2. 单击共享按钮,在弹出的文件共享对话框中添加用户(添加用户需要在文本框中单击三角形按钮选择用户)
  3. 设置权限(因为我们要复制文件所以选择读取/写入)

    在图中,我选择的是EveryOne,所有用户。出于安全考虑,不建议这样做
  4. 在浏览器中输入我们共享的文件夹地址,输入用户名密码,这样就可以在命令提示符中直接使用命令复制了(如果关闭了密码保护密码共享,可省略这一步,但是默认Windows是打开的,关闭是在控制面板->网络和共享中心->更改高级共享设置中)

好了,我们现在知道如何通过命令复制文件夹到远程计算机上了,但是不会每次都通过命令复制吧,这样还不如直接手动复制了。当然不会了,我们的VS不是别人称为宇宙最强IDE么,当然考虑到这一点了,就是生成事件了。

生成事件包括生成前事件和生成后事件,分别是在编译开始之前和编译完成之后进行的自定义处理。

在C++项目中,生成事件在项目的属性页中设置

在C#中,也在项目的属性页中设置

我们可以编辑生成事件,VS在其中定义了许多宏(C++中更多),如项目名称、生成平台、输出目录等。下面仅以C#为例简单说明:

单击编辑后期生成事件,在弹出的窗口中单击宏按钮,在宏列表中单击相应的宏名称,即可插入宏变量到编辑框中,组合宏变量和常见的命令,即可实现很丰富的功能,如上面的拷贝文件到远程计算机。除了使用命令,我们还可以调用批处理,如上图所示,在批处理前面加上call。注意:批处理的当前目录是指工程的输出目录(即在生成中设置的输出目录,默认即bin\Debug或者bin\Release)



上面一切看起来工作的很好。但是,有时候我调试发现了Bug,直接在开发机上运行,却报生成失败,原来是生成后事件未成功运行。再一查,是测试机上没有关掉对应的程序。这个问题怎么解决呢?

这个时候,就可以祭出我们的武器 ,taskkill了。

嗯,我们看到这上面有可以连接远程系统,可以指定用户名,指定密码,指定进程的映像名(一般就是进程的执行文件名,如XX.exe)。这么好的东西,不拿来整蛊同事简直对不起自己,我已经脑补了同事的explorer.exe被我结束后一脸茫然的样子,做好事,不留名,请叫我雷锋。

于是我迫不及待的开始了实验(不要在意我是怎么知道密码这些细节,我是站在背后偷看的)

尼玛,怎么跟想象的不一样。问题出在哪里?

上网一查一对,原来问题出在防火墙上,关了防火墙(根据网络类型选择相应的防火墙)在测试机上检验,果然可以使用了。

当然,在实际使用中,关掉防火墙是不安全的做法,可以进行如下操作。

  1. 依次选择控制面板->Windows防火墙->高级设置
  2. 在高级安全Windows防火墙中选择入站规则
  3. 找到远程计划任务管理(RPC),配置文件为专用、公用,启用规则。
时间: 2024-10-13 11:43:07

VS编译完成后自动复制到远程机器的相关文章

【Jenkins】使用Jenkins编译打包后自动部署项目

为了支持部署,需要安装一个插件:Publish Over SSH 进入插件管理: 在可选插件中搜索Publish Over SSH,然后进行安装即可: 安装好之后,需要配置一下我们的部署服务器的信息: 进入系统管理->系统设置: 在Publish over SSH模块中,添加自己服务器的信息,像我的部署服务器配置好IP地址,账号,密码,部署路径,通信端口(ssh通讯一般都是22)就行了: 配置好之后,可以点击一下下面的测试按钮,看看配置是否正确,显示Success说明配置OK,保存: 然后在构建

SVN 使用hooks 自动更新到远程的web目录下

环境: A机器192.168.1.10  作为SVN的服务端     (环境 apache svn ssh) 环境: B机器 192.168.1.20    (环境 nginx php ssh svn 作为客户端) 目的:开发人员上传代码到A机器时, 会自动更新到B机器上nginx代理服务器的web目录,  以便开发人员直接访问. 环境搭建: A机器apache+svn环境的配置. http://my.oschina.net/denglz/blog/89183 配置好以后svn的基础功能(检出/

jenkins2.0以后的版本提供自动部署和远程部署功能?

metting result comment: 持续集成:dev上使用 持续部署:在dev/uat/prod上使用 1.指定时间自动构建--发布第二天挂了?每次构建需要重新编译?qa和uat使用同一套部署? 答:可以设置手动发布还是自动指定时间发布:每次构建是重新build;qa和uat是集群的部署,不应该使用一套.应该qa完成后自动发布到uat 1.自动构建并发布版本,选择对应服务器,配置,添加构建脚本(baidu)自动发布 2.远程发布:可以通过远程控制发布 3.项目先后顺序配置:通过设置

Linux零基础入学之1-4 Linux文件管理-xfs文件系统的备份恢复-服务器来电后自动开机

[本节内容] Linux系统目录结构 相对/绝对路径 创建/复制/删除文件 rm -rf / 意外事故 查看文件内容 xfs文件系统的备份和恢复  (在rhel6.5上做) 服务器来电后自动开机 [linux系统的目录结构] Linux是单根目录,单根组织文件 /    根分区 所有文件和目录由此开始.只有root用户对此目录有写权限 例:cd /        #查看根目录下的文件 /etc   配置文件目录 包含所有应用程序的配置文件,也包含启动.关闭某个特定 程序的脚本    例如: /e

浏览器新实用功能开发研究:单页富客户端应用的会话/视图状态复制及远程同步功能

浏览器新实用功能开发研究:单页富客户端应用的会话/视图状态复制及远程同步功能 目录 1 一个简单的使用场景 2 单页(富客户端)应用的会话/视图状态表示 3 状态复制及远程同步 4 SPA情景下的Web Cache变化 一个简单的使用场景 我之前成功地在3台机器上使用Google OAuth账户登陆过feedly,不幸的是,后来Google的账号登陆地址被gfw封了,所以我没办法在新电脑上进入我的feedly,值得庆幸的是,feedly始终缓存了我的登陆凭据(不知道是不是用Cookie表示的?)

【学神-RHEL7】1-3-Linux基本命令和配置服务器来电后自动开机

本节所讲内容: Linux终端介绍 Shell提示符 Bash Shell基本语法 基本命令的使用:ls.pwd.cd 查看系统和BIOS硬件时间 Linux如何获得帮助 Linux关机命令:shutdow.init等 Linux 7个启动级别 创建一个方便快捷实验环境快照 设置服务器在来电后自动开机 Linux终端介绍 tty控制台终端   pts虚拟终端 tty1-tty6   如是一开始进入的是图形图面:tty1  就是图形界面. 图形界面切换到字符界面终端: Ctrl+(Shift)+A

编译一次自动更新版本号

http://blog.csdn.net/gqqnb/article/details/7213611 安装与运行 复制IncBuildNo.exe到你的硬盘,例如 C:\windows\IncBuildNo.exe      在Visual Studio中打开任意一个项目或解决方案, 在菜单上选择 项目 - >XXX属性- >生成事件 在后期生成事件命令行中输入命令:IncBuildNo "$(ProjectDir)Properties\AssemblyInfo.cs" &

用Python写个自动ssh登录远程服务器的小工具

很多时候我们喜欢在自己电脑的终端直接ssh连接Linux服务器,而不喜欢使用那些有UI界面的工具区连接我们的服务器.可是在终端使用ssh我们每次都需要输入账号和密码,这也是一个烦恼,所以我们可以简单的打造一个在Linux/Mac os运行的自动ssh登录远程服务器的小工具.来个GIF动画示例下先: 概述 我们先理一下我们需要些什么功能: 1. 添加/删除连接服务器需要的IP,端口,密码 2. 自动输入密码登录远程服务器 对,我们就做这么简单的功能 开始写代码代码比较长,所以我也放在在Github

如何插上U盘 自动复制内容

U盘插入自动复制,有效对付那些不肯给PPT的老师,还有一定几率拿到期末考试卷子···有图有真相!业界良心的好东西!!现在看还来得及!!! 代码优化了一下,把不是很重要的都删掉了,这次使用时看不出任何现象,同样复制U盘里的东西的时候不会出现进度条,完全后台运行. 同样的建立一个文本文档,WIN+R 里面打NOTEPAD ,或者自己新建一个都一样 把下面的代码复制进去 set fso=createobject("scripting.filesystemobject") set ws=cre