build event command line


修改一個工程生成的主文件的擴展名。

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

目的:一個工程,如果設置輸出類型為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


免責聲明!

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



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