VS 生成事件


轉載自: http://hi.baidu.com/gisince/item/7f0439ee610c94255a2d64b4 

 

今天寫了生成事件的處理,如下:

 

從網上Down了一個例子,運行時提示錯誤 命令"copy F:\…… F:\……"已退出,返回值為 1;以前沒遇到過,從網上查了一下,有個網友也有這個問題,他是把一個程序復制一遍,程序名稱變成了“復制 程序名”,就出現了這個問題,而源程序沒任何問題;於是我把程序放到F盤的根目錄下,運行,程序正常。再一分析,是該程序設置了“生成后事件”,進行了一些復制操作,但不知道和路徑有什么問題,仔細一看,我們兩個程序的路徑中都有空格,難道是空格的原因,把路徑中的空格刪了,沒有任何問題了。

看來VS中生成事件的命令行中的路徑不支持空格,以后得注意了。

copy /V "$(TargetDir)$(TargetName).dll" "..\..\..\..\Bin\" 
if Exist $(TargetDir)$(TargetName).pdb copy /V "$(TargetDir)$(TargetName).pdb" "..\..\..\..\Bin\"
if Exist $(TargetDir)$(TargetName).xml copy /V "$(TargetDir)$(TargetName).xml" "..\..\..\..\Bin\"
以上實現在編譯生成后將程序集文件拷貝至指定目錄,這里為根目錄下的一個bin文件夾下

把生成的dll,lib分別拷貝到指定的目錄下面:
set MY_TARGET_PATH=..\..\bin
copy /y $(TargetPath) %MY_TARGET_PATH%
copy /y $(TargetDir)$(TargetName).pdb %MY_TARGET_PATH%
set MY_TARGET_PATH=..\Lib
copy /y $(TargetDir)$(TargetName).lib %MY_TARGET_PATH%

在VS的項目屬性“生成事件”標簽頁中有“生成后事件命令行”,可在這里輸入比如:
copy $(TargetDir) "C:\Program Files\MailSetup"
這樣編譯成功后會將生成的文件拷貝到C:\Program Files\MailSetup
這里有兩點注意:
1、目標路徑要用雙引號括起來
2、使用了宏的源不需要,比如可以寫成$(TargetDir)*.exe
3、如果項目無任何改動,“生成”是不會編譯的,所以當運行生成后事件選中“生成更新項目輸出時”,不會被執行,但“重新生成”會無條件的輸出,並觸發事件


免責聲明!

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



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