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 }
View Code
 2.自動修改程序安裝包圖標

 VS可以制作程序安裝包,默認生成setup.exe以及setup.msi。由於setup.exe的圖標不能在制作程序安裝包的項目當中指定,所以萌生了借助VS生成事件,調用第三方工具替換setup.exe的圖標的想法。

經過一番搜索,發現 ResourceHacker 既可以支持界面操作,也可以支持命令行操作。仔細閱讀相關說明后,得出如下事件命令行:

需要注意的是,程序安裝包似乎沒有VS編譯事件,可以新建一個空項目,並填寫事件命令行內容。通過右鍵,將制作安裝包項目設置為新建空項目的項目依賴項。

三、寫在最后

 以上只是VS事件的簡單介紹,可以依據項目實際需求,具體調整事件命令行內容。原則上來講,cmd命令行支持的內容,VS事件命令行也會支持。

特別聲明:本文版權歸本人以及博客園所有,禁止任何未授權個人以及網站部分或全部使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM