国产97色在线|亚洲-欧美人妻另类制服丝袜-欧美人成国产91视频-殷素素一女战二夫|www.ycjrc.net

build event command line

發(fā)布時(shí)間:2017-08-29 23:28 作者:獨(dú)孤劍 閱讀:1030

修改一個(gè)工程生成的主文件的擴(kuò)展名。

著實(shí)費(fèi)了很大的勁,才搞出來,貼出來共享下,嘿嘿。

目的:一個(gè)工程,如果設(shè)置輸出類型為class library,則編譯鏈接后生成的主文件默認(rèn)的擴(kuò)展名為.dll。如果有需要要將擴(kuò)展名改為其他,如.plugin,那么如何設(shè)置呢?

問題:在VS2008中,C#類型的工程的屬性中并沒有設(shè)置輸出文件名稱這一項(xiàng)。。。

解決:在Build Events標(biāo)簽的Pre-build events command line 和 Post-build event command line中分別如下設(shè)置:

    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真的非常有用非常靈活,它們分別提供了在編譯鏈接前和編譯鏈接后的用戶接口,可以供用戶方便的定制這兩個(gè)時(shí)間段的操作。
2)Pre-build event command line 和Post-build event command line中的輸入內(nèi)容遵循DOS的語法規(guī)則——實(shí)際上,它們就是兩個(gè)批處理文件。
3)可以看到有個(gè)Macros按鈕,展開可以看到很多的宏,這些宏僅僅是一些提示,提供工程相關(guān)的對象的名稱。
4)可以在編譯時(shí)的OutPut窗口中看到Pre-build event command line 和Post-build event command line中批處理命令的執(zhí)行語句,它們也確實(shí)是在當(dāng)前工程編譯之前和編譯之后執(zhí)行的。
5)if exist $(TargetName).plugin del $(TargetName).plugin:首先在編譯前將之前可能存在的.plugin文件刪除,如果不刪除,編譯后執(zhí)行的重命名操作會報(bào)錯(cuò)(提示有一個(gè)重名文件存在);ren $(TargetName)$(TargetExt) $(TargetName).plugin完成后綴名的修改。其中,$(TargetName)就是通過Macros按鈕的提示找到的宏,它的意思就是主輸出文件的文件名,$(TargetExt)是默認(rèn)的擴(kuò)展名,這里面是.dll。

 

 

 

copy file

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

 

 

 

copy "$(TargetDir)$(TargetName).lib" ../lib/deploy/$(TargetName).lib
編譯完成后將一個(gè).lib 文件拷貝到指定目錄

Post-Build Event command line

 

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

要想在2003中執(zhí)行多行命令,只能把命令寫在一個(gè)批處理文件中,然后通過調(diào)用批處理來執(zhí)行.

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

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

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

用法收集

1.build完后修改build產(chǎn)物的名字(后綴),并覆蓋已有的同名文件.

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

2. 調(diào)用外部命令或批處理:

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 自動(dòng)部署

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)  不含擴(kuò)展名

$(TargetFileName)  包含擴(kuò)展名

微信打賞, 微信掃一掃

支付寶打賞, 支付寶掃一掃

如果文章對您有幫助,歡迎給作者打賞

作者最新文章
開發(fā)過程中解決360兼容模式瀏覽器的方法
云南象群向西南方向遷移,云南離群獨(dú)象距離象群約12公里
吉林做網(wǎng)站最低價(jià)格,吉林企業(yè)網(wǎng)站建設(shè)價(jià)格低至500元起
守象人直擊云南象群最新動(dòng)向
網(wǎng)站影響百度蜘蛛抓取量的因素有哪些?為什么我的網(wǎng)站Baidu蜘蛛來的次數(shù)少?
企業(yè)名片
在線客服