生成事件
copy "$(TargetPath)" "%EEEEPath%\bin\Coordinator\" // 將目標exe或dll拷貝到目標路徑下
copy "$(TargetPath)" "$(SolutionDir)\..\..\Assembly\"
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、如果項目無任何改動,“生成”是不會編譯的,所以當運行生成後事件選中“生成更新項目輸出時”,不會被執行,但“重新生成”會無條件的輸出,並觸發事件