build event command line

來源:互聯網
上載者:User

http://www.cnblogs.com/Blaster/archive/2011/12/21/2295612.html

build event command line

2011-12-21 11:31 by Blaster_Lee, 111 visits, 收藏, 編輯

修改一個工程產生的主檔案的副檔名。

著實費了很大的勁,才搞出來,貼出來共用下,嘿嘿。

目的:一個工程,如果設定輸出類型為class library,則編譯連結後產生的主檔案預設的副檔名為.dll。如果有需要要將副檔名改為其他,如.plugin,那麼如何設定呢?

問題:在VS2008中,C#類型的工程的屬性中並沒有設定輸出檔案名稱這一項。。。

解決:在Build Events標籤的Pre-build events command line 和 Post-build event command line中分別如下設定:

    Pre-build event command line :if exist $(TargetName).plugin del $(TargetName).plugin
    Post-build event command line:ren $(TargetName)$(TargetExt) $(TargetName).plugin

說明:1)Pre-build event command line 和Post-build event command line真的非常有用非常靈活,它們分別提供了在編譯連結前和編譯連結後的使用者介面,可以供使用者方便的定製這兩個時間段的操作。
2)Pre-build event command line 和Post-build event command line中的輸入內容遵循DOS的文法規則——實際上,它們就是兩個批次檔。
3)可以看到有個Macros按鈕,展開可以看到很多的宏,這些宏僅僅是一些提示,提供工程相關的對象的名稱。
4)可以在編譯時間的OutPut視窗中看到Pre-build event command line 和Post-build event command line中批處理命令的執行語句,它們也確實是在當前工程編譯之前和編譯之後執行的。
5)if exist $(TargetName).plugin del $(TargetName).plugin:首先在編譯前將之前可能存在的.plugin檔案刪除,如果不刪除,編譯後執行的重新命名操作會報錯(提示有一個重名檔案存在);ren $(TargetName)$(TargetExt) $(TargetName).plugin完成尾碼名的修改。其中,$(TargetName)就是通過Macros按鈕的提示找到的宏,它的意思就是主輸出檔案的檔案名稱,$(TargetExt)是預設的副檔名,這裡面是.dll。

 

 

 

copy file

xcopy $(ProjectDir)XMLConfig $(SolutionDir)$(SolutionName)/$(OutDir) /S /E /C /Y

 

 

 

copy "$(TargetDir)$(TargetName).lib" ../lib/deploy/$(TargetName).lib
編譯完成後將一個.lib 檔案拷貝到指定目錄

Post-Build Event command line

 

在vs2003 和2005中都支援了Build Events, 但是2003隻支援單行的命令,而2005可以支援多行命令.

要想在2003中執行多行命令,只能把命令寫在一個批次檔中,然後通過調用批處理來執行.

1.在Solution explorer中用context meun查看project的property.

2.選擇Build Events,可以看到Pre-build 和Post-build event command line,以及運行Post-build event 的條件

//——————————————————

用法收集

1.build完後修改build產物的名字(尾碼),並覆蓋已有的同名檔案.

copy $(TargetFileName) $(TargetName).XXX y

2. 調用外部命令或批處理:

call "C:/Program Files/XXX.exe"

3. 條件判斷:

IF NOT $(ConfigurationName) == Release GOTO end

    call "C:/Program Files/XXX.exe" $(ProjectDir)$(TargetName).cvp

:end

4.web project 自動部署

copy     $(TargetDir)*.*     //MyServer/MyService/bin
copy     $(ProjectDir)*.ascx     //MyServer/MyService

5. copy from one path to the other path

Copy "$(ProjectDir)pri.bin" "$(SolutionDir)$(SolutionName)/$(OutDir)"

copy  pri.bin(file name) from $(ProjectDir) to $(SolutionDir)$(SolutionName)/$(OutDir)

//——————————————————

Macro收集

$(DevEnvDir)

$(ProjectDir)

$(BuiltOuputPath)

$(ConfigurationName)

$(TargetName)  不含副檔名

$(TargetFileName)  包含副檔名

 轉帖地址:http://blog.csdn.net/zhongjiekangping/article/details/5268249

著實費了很大的勁,才搞出來,貼出來共用下,嘿嘿。

目的:一個工程,如果設定輸出類型為class library,則編譯連結後產生的主檔案預設的副檔名為.dll。如果有需要要將副檔名改為其他,如.plugin,那麼如何設定呢?

問題:在VS2008中,C#類型的工程的屬性中並沒有設定輸出檔案名稱這一項。。。

解決:在Build Events標籤的Pre-build events command line 和 Post-build event command line中分別如下設定:

    Pre-build event command line :if exist $(TargetName).plugin del $(TargetName).plugin
    Post-build event command line:ren $(TargetName)$(TargetExt) $(TargetName).plugin

說明:1)Pre-build event command line 和Post-build event command line真的非常有用非常靈活,它們分別提供了在編譯連結前和編譯連結後的使用者介面,可以供使用者方便的定製這兩個時間段的操作。
2)Pre-build event command line 和Post-build event command line中的輸入內容遵循DOS的文法規則——實際上,它們就是兩個批次檔。
3)可以看到有個Macros按鈕,展開可以看到很多的宏,這些宏僅僅是一些提示,提供工程相關的對象的名稱。
4)可以在編譯時間的OutPut視窗中看到Pre-build event command line 和Post-build event command line中批處理命令的執行語句,它們也確實是在當前工程編譯之前和編譯之後執行的。
5)if exist $(TargetName).plugin del $(TargetName).plugin:首先在編譯前將之前可能存在的.plugin檔案刪除,如果不刪除,編譯後執行的重新命名操作會報錯(提示有一個重名檔案存在);ren $(TargetName)$(TargetExt) $(TargetName).plugin完成尾碼名的修改。其中,$(TargetName)就是通過Macros按鈕的提示找到的宏,它的意思就是主輸出檔案的檔案名稱,$(TargetExt)是預設的副檔名,這裡面是.dll。

 

 

 

copy file

xcopy $(ProjectDir)XMLConfig $(SolutionDir)$(SolutionName)/$(OutDir) /S /E /C /Y

 

 

 

copy "$(TargetDir)$(TargetName).lib" ../lib/deploy/$(TargetName).lib
編譯完成後將一個.lib 檔案拷貝到指定目錄

Post-Build Event command line

 

在vs2003 和2005中都支援了Build Events, 但是2003隻支援單行的命令,而2005可以支援多行命令.

要想在2003中執行多行命令,只能把命令寫在一個批次檔中,然後通過調用批處理來執行.

1.在Solution explorer中用context meun查看project的property.

2.選擇Build Events,可以看到Pre-build 和Post-build event command line,以及運行Post-build event 的條件

//——————————————————

用法收集

1.build完後修改build產物的名字(尾碼),並覆蓋已有的同名檔案.

copy $(TargetFileName) $(TargetName).XXX y

2. 調用外部命令或批處理:

call "C:/Program Files/XXX.exe"

3. 條件判斷:

IF NOT $(ConfigurationName) == Release GOTO end

    call "C:/Program Files/XXX.exe" $(ProjectDir)$(TargetName).cvp

:end

4.web project 自動部署

copy     $(TargetDir)*.*     //MyServer/MyService/bin
copy     $(ProjectDir)*.ascx     //MyServer/MyService

5. copy from one path to the other path

Copy "$(ProjectDir)pri.bin" "$(SolutionDir)$(SolutionName)/$(OutDir)"

copy  pri.bin(file name) from $(ProjectDir) to $(SolutionDir)$(SolutionName)/$(OutDir)

//——————————————————

Macro收集

$(DevEnvDir)

$(ProjectDir)

$(BuiltOuputPath)

$(ConfigurationName)

$(TargetName)  不含副檔名

$(TargetFileName)  包含副檔名

 轉帖地址:http://blog.csdn.net/zhongjiekangping/article/details/5268249

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.