VS生成事件时复制文件到指定位置

摘要:
如果我们能够很好地使用Visual Studio,VS生成的事件将大大提高我们的效率。NET程序。本文介绍Visual Studio中的生成事件。右键单击解决方案下的项目并选择“属性”以打开窗口。您可以看到“生成事件”选项。此项不常用。几年来编写代码时,它甚至不会被触碰一次,但我今天需要它。在每个项目的生成事件窗口的“生成后事件命令行”中直接写入“copy$E:projectsMyDemoJoeyLibsIdleTestdlls”,并在下面的“运行生成后事件”中选择“当成功生成时”。

VS生成事件

  如果说磨刀不误砍柴工,同样用好Visual Studio,会大大增加咱.NET程序猿效率。本文说的就是Visual Studio中的生成事件,在解决方案下右击某个项目然后选择 “属性” 打开窗口后即可看到 “生成事件” 选项,这个东西其实并不常用,甚至写几年代码都不会碰它一次,但是我今天需要她了。

VS生成事件时复制文件到指定位置第1张

       我有一个解决方案IdleTest,还有另一个解决方案下的项目需用到IdleTest最新的dll,而原IdleTest下生成的dll由于还有其他项目也在用,故需要将IdleTest解决方案的几个项目生成的dll拷贝到一个新的目录。

  但是每次修改声称拷贝很麻烦,于是乎就想到了生成事件,百度说生成事件里的命令行是支持dos命令的,我就尝试了在后期生成事件命令行中输入 “copy [源文件全路径] 拷贝到的路径”,果然奏效。
  但是我需要将多个项目生成的dll都拷贝到新的路径下,这样一来这个“[源文件全路径]”就显得很麻烦,没有体现复用性,有木有更好的办法呢?
打开生成事件中的宏如下图所示

VS生成事件时复制文件到指定位置第2张

 VS生成事件时复制文件到指定位置第3张

   可以看到有一个列表(含有“宏”和“值”列),而“宏”下的“TargetPath”对应的值就是当前项目生成的 dll/exe 文件对应的物理路径,双击该行,在上方的方框中就出现了“$(TargetPath)”,好了不罗嗦了。
  直接在每个项目的生成事件窗口中的“后期生成事件命令行”写下“copy $(TargetPath) E:projectsMyDemoJoeyLibsIdleTestdlls”,并在下方的 “运行后期生成事件” 选择 “成功生成时” 搞定。

VS生成事件时复制文件到指定位置第4张

   这个功能我还用来干一件事,就是当解决方案下又数十个项目时,我会在生成的最后一个项目(一般是UI或者服务)用到,操作与上文类似,只是命令变成了:

@echo msgbox "[$(ProjectName)]生成已完成!">msg.vbs 
@msg.vbs
@del msg.vbs

  保存过后,重新生成项目,测试即可

免责声明:文章转载自《VS生成事件时复制文件到指定位置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java 增强for循环与泛型一 pandas读取excle数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

phpcms v9 企业黄页系统发布没有表单出现的解决方案

第一种解决方案: 第一步:把yp_UTF8压缩文件解压得到:api、caches、phpcms、statics四个文件夹。 第二步:把这四个文件夹分别覆盖已安装好的phpcms系统根目录下的文件夹。这一步直接复制文件夹覆盖就行了,不要去分别复制这四个文件夹下的文件。我刚开始是分别复制文件进行覆盖,结果总是空白。记住直接覆盖文件夹就可以了。 第三部:进入ph...

移动端开发经常遇见的问题以及解决方案

1.移动端左右滑动右侧有留白出现这种问题的话查看一下自己的css中有没有用到position:relative或者position:absolute,我做页面的时候经常遇到这个问题,百分之一百是这个原因。解决方案:只要设置html,body的width为100%,overflow:hidden就可以了。 2.iOS点击事件无效果的几个方案1)为css添加c...

如何提升大容量文件上传性能

背景618压测过程中,涉及大规格的参数化文件上传平台,由于文件过大超过2G,在平台上传过程中经常失败,超时,重试也要等老半天,这就会造成人力资源等待影响工作效率。那么应该怎么做才能快速上传,如何提高文件上传性能以及做到就算失败了再次重试也能从上次中断的地方继续上传提升系统的容错能力呢 ?我学习整理了一些优化思路,在此分享给大家,请君看下文分解~~~  ...

WPF通过深拷贝实现保存与取消

用old保存就设置,用new保存新设置确认逻辑 public void SaveCurrent() { //创建一个新对象(深拷贝) oldConfig = CopyEx.DeepCopyByBin(config); } 取消逻辑 public voi...

.net core开发 (一)

1..net core: 是微软开发的另外一个可以跨平台的.net 2..net framework,.net core, mono的关系三者都是.net在不同操作系统的实现 3. .net core版本.net core 1.1 -> .net core 2.0 preview -> .net core 2.0 4. linux安装.net...

VUE公众号出现空白的原因 以及解决方案

VUE公众号出现空白的原因 以及解决方案 ---原因是之前的登录方法有问题,登录了两次,然后登录失败 提示信息被关闭了,还有就是ES6转码没有配置好,还有一个问题是 编译后的缓存问题,覆盖上传的方法可以解决 被坑惨了 希望有缘人可以看到 帮助到别人 少主...