Visual Studio 生成事件这件小事

84251449 2019-10-22

在上一篇《Visual Studio 调试技巧》中,介绍了一些VS常用的调试操作,今天,聊一聊VS当中一个不太常见,但有时又有妙用的操作——VS生成事件。

一、什么是VS生成事件

简单来说,VS生成事件就是在编译项目的过程中发生的一些事件。根据事件发生的时机,允许自定义一些操作。

VS生成事件可以在项目上右键,选择属性菜单后看到。VS生成事件分为以下两大部分:

1. 生成前事件命令行,可以指定在项目编译之前执行的一些命令行操作。

Visual Studio 生成事件这件小事

通过点击编辑预先生成按钮,可以编辑生成前事件命令行。其中按钮允许插入一些预定义变量,可以代表文件路径。

Visual Studio 生成事件这件小事

2. 生成后事件命令行,可以指定在项目编译之后执行的一些命令行操作。 

Visual Studio 生成事件这件小事

运行后生成事件可以指定运行生成后事件的发生条件。

简单了解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。具体命令行实例如下:

Visual Studio 生成事件这件小事

/// <summary>
/// author LightSmaile
/// </summary>
private void CheckBlogPosition()
{
    if(thisBlogPostion != "cnblogs")
    {
        Console.WriteLine("this blog has been crawled!");
    }
}
 2.自动修改程序安装包图标

 VS可以制作程序安装包,默认生成setup.exe以及setup.msi。由于setup.exe的图标不能在制作程序安装包的项目当中指定,所以萌生了借助VS生成事件,调用第三方工具替换setup.exe的图标的想法。

经过一番搜索,发现 ResourceHacker 既可以支持界面操作,也可以支持命令行操作。仔细阅读相关说明后,得出如下事件命令行:

Visual Studio 生成事件这件小事

需要注意的是,程序安装包似乎没有VS编译事件,可以新建一个空项目,并填写事件命令行内容。通过右键,将制作安装包项目设置为新建空项目的项目依赖项。

三、写在最后

 以上只是VS事件的简单介绍,可以依据项目实际需求,具体调整事件命令行内容。原则上来讲,cmd命令行支持的内容,VS事件命令行也会支持。

特别声明:本文版权归本人以及博客园所有,禁止任何未授权个人以及网站部分或全部使用。

相关推荐

IvanXing / 0评论 2010-11-04