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事件命令行也会支持。

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

原文地址:https://www.cnblogs.com/LightSmile/p/11723175.html

时间: 2024-12-29 11:52:11

Visual Studio 生成事件这件小事的相关文章

Visual studio 生成事件的使用 、xcopy 实现 dll 复制操作、

IF NOT "$(ConfigurationName)"=="publish" exit /B 0if not exist $(TargetPath)publish md $(TargetPath)publishxcopy /y $(TargetPath) $(SolutionDir)\\publisher 关于xcopy http://baike.baidu.com/link?url=PqKP2WNM02x4jWOGlYV4p2nm5X-gtIMitWsWMsI

Visual studio 生成后事件说明

在"配置属性->生成事件->生成后事件"属性页中的"命令行"编辑框中输入如下命令: copy "$(ProjectDir)$(IntDir)\$(ProjectName).tlb" "$(SolutionDir)\bin\$(ProjectName).tlb" 就可将$(ProjectDir)$(IntDir)\$(ProjectName).tlb文件拷贝到$(SolutionDir)\bin目录下.(宏的含义参见

使用 Visual Studio 生成通用的 XAML 应用程序 (Windows Phone 和 Windows 通用程序)

在Build会议上,我们发布了新的版本---Windows Phone 8.1. Windows 8.1 平台.作为开发人员,这意味着您现在可以生成 XAML 和 HTML 的通用程序,并通过分享大量的代码和内容使其运行在手机和平板电脑上.为了使构建通用程序可用,我们在Visual Studio中添加了许多新功能作为Visual Studio 更新 2 RC的一部分. 您有两种方式来了解关于这些功能的更多信息.一种方法是通过这篇博客.另一个方式是收看我的Build talk视频,它涵盖了所有的资

Visual Studio 2017 发布

https://www.visualstudio.com/zh-cn/news/releasenotes/vs2017-relnotes 发布日期:2017 年 3 月 7 日 摘要 开发:快速导航.编写并修复代码 新的安装体验 - 降低了最小内存需求量以实现更快.更定制化的安装,并且支持脱机安装. Visual Studio IDE - 大幅改进了 Visual Studio 2017,包括减少启动和解决方案加载时间.改进登录和标识.改进代码导航以及增添打开文件视图和链接的服务,实现了应用和任

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代

有感 Visual Studio 2015 RTM 简介 - 八年后回归 Dot Net,终于迎来了 Mvc 时代,盼走了 Web 窗体时代 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 关于

Visual C++ 指导教程 — — Visual Studio 2012

Visual C++ 指导教程 Visual Studio 2012 在本指导教程中,将介绍 Visual Studio 开发环境,以及可以使用 Visual C++ 创建的各种类型的应用程序. 其中包括命令行应用程序.Windows 应用程序,甚至简单的游戏. 本指导教程还将介绍如何创建可重用代码库,以及如何在编写和测试了代码后将其交付给客户. 因为每个主题都以上一主题中的信息为基础,所以我们建议您按顺序完成指导教程. 在每个主题的底部,您可以找到指导教程下一主题的导航链接和上一主题的链接(如

Visual Studio 2010 中的 Web 开发

概述 Microsoft Visual Studio 2010 为 ASP.NET Web 应用程序的开发提供非常多新的功能.这些新功能旨在帮助开发者高速方便地创建和部署质量高且功能全的 Web 应用程序. 眼下,Visual Studio 2010 支持 HTML 代码片段.利用这些代码片段,能够生成高质量的代码.Visual Studio 中附带了非常多代码片段,开发者也能够创建自己的代码片段. Visual Studio 2010 提供的还有一个新功能是转换 web.config 文件,以

不使用Visual Studio开发ASP.NET MVC应用(下篇)

书接上回! 前文“纯手工”.彻底抛弃Visual Studio,制作了一个ASP.NET MVC应用,运行起来还不错,项目目录.源代码.web.config等所有东西都已经做到“最简”,除去了Visual Studio生成的一大堆无关东西,当然这只是一个“起点”,随着后面项目内容和功能的扩展还需要一步步添加很多东西,但如此干净一个项目,看着就让人舒服,一砖一瓦的盖自己的房子,何尝不是一种享受!(其实很多人不认同这样,在stackoverflow原文中,问题解答者用"severe brain da

Visual Studio 2017 15.7 下的.NET Core

Visual Studio 2017 15.7版本发布,对.NET Core项目的主要相关改变如下, 同时对Xamarin.Android和iOS项目的支持上也做了较大改进. 一. .NET Core相关主要内容 1. 大型的. NET Core项目中缩短了智能感知25%的时间. 2.C# 7.3 支持 3. 项目发布:提供了部署模式(框架依赖和独立部署)和目标运行时(win.osx.linux)的选择功能. 二. 其他主要更新 我们增加了对更改安装位置的支持. 在开始更新之前, 可以全部保存挂