转载自: http://hi.baidu.com/gisince/item/7f0439ee610c94255a2d64b4

今天写了生成事件的处理,如下:

从网上Down了一个例子,运行时提示错误 命令"copy F:\…… F:\……"已退出,返回值为 1;以前没遇到过,从网上查了一下,有个网友也有这个问题,他是把一个程序复制一遍,程序名称变成了“复制 程序名”,就出现了这个问题,而源程序没任何问题;于是我把程序放到F盘的根目录下,运行,程序正常。再一分析,是该程序设置了“生成后事件”,进行了一些复制操作,但不知道和路径有什么问题,仔细一看,我们两个程序的路径中都有空格,难道是空格的原因,把路径中的空格删了,没有任何问题了。

看来VS中生成事件的命令行中的路径不支持空格,以后得注意了。

copy /V "$(TargetDir)$(TargetName).dll" "..\..\..\..\Bin\" 
if Exist $(TargetDir)$(TargetName).pdb copy /V "$(TargetDir)$(TargetName).pdb" "..\..\..\..\Bin\"
if Exist $(TargetDir)$(TargetName).xml copy /V "$(TargetDir)$(TargetName).xml" "..\..\..\..\Bin\"
以上实现在编译生成后将程序集文件拷贝至指定目录,这里为根目录下的一个bin文件夹下

把生成的dll,lib分别拷贝到指定的目录下面:
set MY_TARGET_PATH=..\..\bin
copy /y $(TargetPath) %MY_TARGET_PATH%
copy /y $(TargetDir)$(TargetName).pdb %MY_TARGET_PATH%
set MY_TARGET_PATH=..\Lib
copy /y $(TargetDir)$(TargetName).lib %MY_TARGET_PATH%

在VS的项目属性“生成事件”标签页中有“生成后事件命令行”,可在这里输入比如:
copy $(TargetDir) "C:\Program Files\MailSetup"
这样编译成功后会将生成的文件拷贝到C:\Program Files\MailSetup
这里有两点注意:
1、目标路径要用双引号括起来
2、使用了宏的源不需要,比如可以写成$(TargetDir)*.exe
3、如果项目无任何改动,“生成”是不会编译的,所以当运行生成后事件选中“生成更新项目输出时”,不会被执行,但“重新生成”会无条件的输出,并触发事件

VS 生成事件的更多相关文章

  1. 磨刀不误砍柴工——VS生成事件

    如果说磨刀不误砍柴工,同样用好Visual Studio,会大大增加咱.NET程序猿效率.本文说的就是Visual Studio中的生成事件,在解决方案下右击某个项目然后选择 “属性” 打开窗口后即可 ...

  2. Visual Studio 生成事件命令

    Visual Studio在生成项目工程前后,有时我们需要做一些特殊的操作,比如:拷贝生成的dll到指定目标下面等. 结合VS可以添加预先生成事件和后期生成事件,采用命令或bat批处理. 1.Visu ...

  3. VS2012 生成事件

    在一个解决方案中有多个项目的时候,我们常需要拷贝一些文件,dll到指定的目录下,或者遇到com组件还需要提前注册dll,这个就需要用到VS的生成事件. 一.位置: 项目-->右键-->属性 ...

  4. VS生成事件

    源自:http://www.cnblogs.com/FreeDong/p/3406737.html 如果说磨刀不误砍柴工,同样用好Visual Studio,会大大增加咱.NET程序猿效率.本文说的就 ...

  5. 项目属性-->生成事件-->后期生成事件命令行

    以开源记牌器https://github.com/Epix37/Hearthstone-Deck-Tracker 为例,Hearthstone Deck Tracker项目中的后期生成事件命令行: i ...

  6. VS中的预先生成事件和后期生成事件

    原文:VS中的预先生成事件和后期生成事件 在C#开发中,有时候需要在程序编译之前或之后做一些操作. 要达到这个目的,可以使用Visual Studio中的预先生成事件和后期生成事件. 下图是一个简单例 ...

  7. VS2010-使用“预先生成事件命令行”和“后期生成事件命令行”功能

    原文:VS2010-使用"预先生成事件命令行"和"后期生成事件命令行"功能 xcopy /r /y $(TargetPath) $(ProjectDir)..\ ...

  8. Visual Studio 中指定自定义生成事件

    自定义生成事件打开方式 通过指定自定义生成事件,可以在生成开始之前或在它完成之后自动运行命令.在Visual Studio中通过右键项目->属性 进入项目属性菜单. 自定义生成事件的语法 生成事 ...

  9. 使用VS的生成事件命令行指令将生成的exe,dll文件复制到指定文件夹中

    VS预生成事件命令行 和 生成后事件命令行 宏说明 $(ConfigurationName)            当前项目配置的名称(例如,“Debug|Any CPU”). $(OutDir)   ...

随机推荐

  1. 记2016腾讯 TST 校招面试经历,电面、笔试写代码、技术面、hr面,共5轮

    (出处:http://www.cnblogs.com/linguanh/) 前序: 距离  2016 腾讯 TST 校招面试结束已经5天了,3月27日至今,目前还在等待消息.从投简历到两轮电面,再到被 ...

  2. Objective-C runtime的常见应用

    用Objective-C等面向对象语言编程时,"对象"(object)就是"基本构造单元"(building block).开发者可以通过对象来存储并传递数据. ...

  3. 11gRAC报错CRS-4535, CRS-4000解决

    环境:AIX6.1 + Oracle11.2.0.4 RAC(2 nodes) 1.故障现象 2.定位问题 3.处理问题 1.故障现象 使用crsctl查看集群各资源状态,在任一节点都会直接报错CRS ...

  4. MVP社区巡讲-云端基础架构:12月5日北京站 12月12日上海站

    紧跟当今的技术发展趋势还远远不够,我们要引领变革!加入本地技术专家社区,获取真实案例.实况培训演示以及探讨新一代解决方案.在此活动中,您将: 了解如何运用开源(OSS)技术.Microsoft 技术及 ...

  5. Redis命令拾遗二(散列类型)

    本文版权归博客园和作者吴双共同所有,欢迎转载,转载和爬虫请注明原文地址 :博客园蜗牛NoSql系列地址  http://www.cnblogs.com/tdws/tag/NoSql/ Redis命令拾 ...

  6. MVC跨项目路由

    我们在实际应用开发中,经常遇到多人共同开发维护同一个项目情况,所以不免会出现其中一个人代码出现bug质量问题导致整个项目就原地“爆炸”的惨状.在之前公司经常遇到某个人忘记更新(我就做个此事[" ...

  7. AlloyRenderingEngine之Shape

    写在前面 不读文章,只对代码感兴趣可以直接跳转到这里 https://github.com/AlloyTeam/AlloyGameEngine 然后star一下,多谢支持:). 游戏或者应用中,不是所 ...

  8. 在Outlook中查看预览SharePoint文档库的文档

    本文概况 阅读时间: 约2分钟 适用版本:SharePoint Server 2010及以上 面向用户:普通用户,管理员 难度指数:★★☆☆☆ 在日常工作中,总有一些常用的文档需要经常打开查看,其实我 ...

  9. ExtPB.Net:窗体应用技巧(2)在树形导航下打开弹出的win窗口

    ExtPB.Net的demo程序有个树形导航菜单,里面的菜单打开的窗口放在右边的TabStrip控件中.我们可以设计win通过导航打开,但有时我们希望以弹出窗口的形式打开它,但怎么办呢?现在可以这样修 ...

  10. IOS之Objective-C学习 策略模式

    对于策略模式,我个人理解策略模式就是对各种规则的一种封装的方法,而不仅仅是对算法的封装与调用而已.与工厂模式中简单工厂有点类似,但是比简单工厂更有耦合度,因为策略模式以相同的方法调用所有的规则,减少了 ...