Visual Studio 生成事件这件小事
在上一篇《Visual Studio 调试技巧》中,介绍了一些VS常用的调试操作,今天,聊一聊VS当中一个不太常见,但有时又有妙用的操作——VS生成事件。
一、什么是VS生成事件
简单来说,VS生成事件就是在编译项目的过程中发生的一些事件。根据事件发生的时机,允许自定义一些操作。
VS生成事件可以在项目上右键,选择属性菜单后看到。VS生成事件分为以下两大部分:
1. 生成前事件命令行,可以指定在项目编译之前执行的一些命令行操作。
通过点击编辑预先生成按钮,可以编辑生成前事件命令行。其中宏按钮允许插入一些预定义变量,可以代表文件路径。
2. 生成后事件命令行,可以指定在项目编译之后执行的一些命令行操作。
运行后生成事件可以指定运行生成后事件的发生条件。
简单了解VS生成事件之后,再以真实案例说明下VS生成事件的运用。
二、VS生成事件应用
1.使用xcopy拷贝dll
在实际的开发过程中,有时需要使用C#调用C++ dll。然而,C++ dll 分为x86和x64版本。C#程序运行时,需要依据操作系统的类型加载合适版本的dll。这个时候,一个解决方案就是,将公有位置上x86和x64版本的C++ dll ,通过VS生成事件,使用xcopy命令拷贝到程序生成目录的x86和x64文件夹下面,C#程序启动时,自动从x86或x64文件夹下拷贝合适版本的C++ dll。具体命令行实例如下:
1 /// <summary> 2 /// author LightSmaile 3 /// </summary> 4 private void CheckBlogPosition() 5 { 6 if(thisBlogPostion != "cnblogs") 7 { 8 Console.WriteLine("this blog has been crawled!"); 9 } 10 }
2.自动修改程序安装包图标
VS可以制作程序安装包,默认生成setup.exe以及setup.msi。由于setup.exe的图标不能在制作程序安装包的项目当中指定,所以萌生了借助VS生成事件,调用第三方工具替换setup.exe的图标的想法。
经过一番搜索,发现 ResourceHacker 既可以支持界面操作,也可以支持命令行操作。仔细阅读相关说明后,得出如下事件命令行:
需要注意的是,程序安装包似乎没有VS编译事件,可以新建一个空项目,并填写事件命令行内容。通过右键,将制作安装包项目设置为新建空项目的项目依赖项。
三、写在最后
以上只是VS事件的简单介绍,可以依据项目实际需求,具体调整事件命令行内容。原则上来讲,cmd命令行支持的内容,VS事件命令行也会支持。
特别声明:本文版权归本人以及博客园所有,禁止任何未授权个人以及网站部分或全部使用。