VS中的預先生成事件和後期生成事件

2021-09-07 04:13:07 字數 2992 閱讀 4826

原文:

vs中的預先生成事件和後期生成事件

在c#開發中,有時候需要在程式編譯之前或之後做一些操作。

要達到這個目的,可以使用visual studio中的預先生成事件和後期生成事件。

下圖是乙個簡單例子:

將工程目錄中的一些資源檔案和庫檔案拷貝到debug目錄下

1.在「解決方案資源管理器」中,右擊要為其指定預先生成命令列的資料庫專案,再單擊「屬性」。

2.在「專案屬性」視窗中單擊「生成事件」選項卡。

3.執行下列操作之一:

a.如果已知要執行的命令列,請在「預先生成事件命令列」中鍵入要在生成資料庫專案之前執行的命令列,然後轉到步驟 5。

b.如果要使用生成巨集,請單擊「編輯預先生成事件」。在「預先生成事件命令列」對話方塊中,鍵入要執行的命令列。可以單擊列表中的巨集並單擊「插入」將其插入到命令列中。

4.在完成命令列的編輯之後,請單擊「確定」。

5.在「檔案」選單上,單擊「儲存選定項」儲存對專案屬性進行的更改。下次生成資料庫專案時,該命令行將在生成資料庫專案之前執行。

1.在「解決方案資源管理器」中,右擊要為其指定後期生成命令列的資料庫專案,再單擊「屬性」。

2.在「專案屬性」視窗中單擊「生成事件」選項卡。

3.執行下列操作之一:

c.如果知道要執行的命令列,請在「後期生成事件命令列」中鍵入資料庫專案生成後要執行的命令列,然後轉到步驟 5。

d.如果要使用生成巨集,請單擊「編輯後期生成事件」。在「後期生成事件命令列」對話方塊中,鍵入要執行的命令列。可以單擊列表中的巨集並單擊「插入」將其插入到命令列中。

4.在完成命令列的編輯之後,請單擊「確定」。

5.如果希望僅在生成成功時才執行命令列,請在「執行後期生成事件」列表中,單擊「成功生成時」。如果希望命令列總是執行(即使生成失敗時),請在「執行後期生成事件」列表中,單擊「總是」。

6.在「檔案」選單上,單擊「儲存選定項」儲存對專案屬性進行的更改。下次生成資料庫專案時,該命令行將在生成資料庫專案之後執行。

注意:應在執行 .bat 檔案的每個後期生成命令之前新增 call 語句。例如,可以新增 call c:\myfile.bat 或 call c:\myfile.bat

巨集

說明

$(configuration)

當前專案配置的名稱(例如,「

default

」)。

$(msbuildprojectname)

專案的基名稱。

$(msbuildprojectextension)

專案的副檔名。它包括副檔名前面的「.」。

$(platformname)

當前目標平台的名稱(例如,「

anycpu

」)。

$(outputpath)

生成的主輸出檔案的路徑名(定義為驅動器

+ 路徑

+ 基名稱

+ 副檔名)。

$(outputtype)

專案的輸出型別。對於資料庫專案,此型別為「

database」。

$(dbproduct)

目標資料庫專案的

microsoft sql server

版本。此結果將為

sql server 2000

或sql server 2005。

$(targetdatabase)

目標資料庫的名稱。

$(targetconnectionstring)

用於連線到目標資料庫當前駐留(或將駐留)的伺服器的連線字串。

$(msbuildbinpath)

msbuild

二進位制檔案的路徑(例如,

c:\windows\microsoft.net\framework\v2.0.50727)。

$(defaultschema)

非限定物件的預設架構。

$(deploymentcollationpreference)

如果指定,則為如何處理源和目標排序規則之間衝突的首選項。預設情況下,該首選項為

none。

$(ansinulls)

有關更多資訊,請參見

資料庫專案設定概述。

$(ansipadding)

有關更多資訊,請參見

資料庫專案設定概述。

$(ansiwarnings)

有關更多資訊,請參見

資料庫專案設定概述。

$(arithabort)

有關更多資訊,請參見

資料庫專案設定概述。

$(concatnullyieldsnull)

有關更多資訊,請參見

資料庫專案設定概述。

$(numericroundabort)

有關更多資訊,請參見

資料庫專案設定概述。

$(quotedidentifier)

有關更多資訊,請參見

資料庫專案設定概述。

$(solutiondir)

解決方案的目錄(定義為驅動器

+ 路徑)。此結果包括尾部的反斜槓「\」。

$(solutionpath)

解決方案的絕對路徑名(定義為驅動器

+ 路徑

+ 基名稱

+ 副檔名)。

$(solutionname)

解決方案的基名稱。

$(solutionfilename)

解決方案的檔名(定義為基名稱

+ 副檔名)。

$(solutionext)

解決方案的副檔名。此結果包括副檔名前面的「.」。

$(devenvdir)

visual studio 2005

的安裝目錄(定義為驅動器

+ 路徑)。此結果包括尾部的反斜槓「\」。

VS中後期生成事件簡單示例

在使用vs過程中,很多時候需要把需要的檔案一起拷貝到編譯產生的可執行程式所在目錄,對此可以採用簡單的後期生成事件完成,就不需要手動拷貝了。後期生成事件簡單操作如下 1 開啟專案屬性對話方塊 2 如圖選擇後期生成事件並輸入命令 bat指令碼 echo echo projectname 生成完成.ech...

VS生成事件

源自 如果說磨刀不誤砍柴工,同樣用好visual studio,會大大增加咱.net程式猿效率。本文說的就是visual studio中的生成事件,在解決方案下右擊某個專案然後選擇 屬性 開啟視窗後即可看到 生成事件 選項,這個東西其實並不常用,甚至寫幾年 都不會碰它一次,但是我今天需要她了。可以看...

vs2013 後期生成事件編譯失敗

今天有特殊需求,要用到vs的後期生成事件,我試了下mkdir projectdir abc發現便宜不過,報告錯誤 錯誤 6 命令 mkdir em.webui abc 已退出,為 1。我還以為是路徑不能有空格,但是後來測試了下,發現要這樣子寫 mkdir projectdir abc xcopy p...