文章出處

源自:http://www.cnblogs.com/FreeDong/p/3406737.html

 如果說磨刀不誤砍柴工,同樣用好Visual Studio,會大大增加咱.NET程序猿效率。本文說的就是Visual Studio中的生成事件,在解決方案下右擊某個項目然后選擇 “屬性” 打開窗口后即可看到 “生成事件” 選項,這個東西其實并不常用,甚至寫幾年代碼都不會碰它一次,但是我今天需要她了。

  我有一個解決方案IdleTest,還有另一個解決方案下的項目需用到IdleTest最新的dll,而原IdleTest下生成的dll由于還有其他項目也在用,故需要將IdleTest解決方案的幾個項目生成的dll拷貝到一個新的目錄。但是每次修改聲稱拷貝很麻煩,于是乎就想到了生成事件,百度說生成事件里的命令行是支持dos命令的,我就嘗試了在后期生成事件命令行中輸入 “copy [源文件全路徑] 拷貝到的路徑”,果然奏效。
  但是我需要將多個項目生成的dll都拷貝到新的路徑下,這樣一來這個“[源文件全路徑]”就顯得很麻煩,沒有體現復用性,有木有更好的辦法呢?
打開生成事件中的宏如下圖所示


  可以看到有一個列表(含有“宏”和“值”列),而“宏”下的“TargetPath”對應的值就是當前項目生成的 dll/exe 文件對應的物理路徑,雙擊該行,在上方的方框中就出現了“$(TargetPath)”,好了不羅嗦了。
  直接在每個項目的生成事件窗口中的“后期生成事件命令行”寫下“copy $(TargetPath) E:\projects\MyDemo\JoeyLibs\IdleTest\dlls”,并在下方的 “運行后期生成事件” 選擇 “成功生成時” 搞定。

這個功能我還用來干一件事,就是當解決方案下又數十個項目時,我會在生成的最后一個項目(一般是UI或者服務)用到,操作與上文類似,只是命令變成了:

@echo msgbox "[$(ProjectName)]生成已完成!">msg.vbs 
@msg.vbs
@del msg.vbs

 

這樣在緩慢的項目生成過程中就可以1024,生成完成又可以馬上繼續coding。

關于生成事件目前我只用到這兩點,如果你有更好的使用場景不妨分享下。

 



 感謝閱讀,請留下您的意見或疑問! 能力有限,錯漏難免,歡迎指點!

 分割線:我的個人原創,請認準 http://freedong.cnblogs.com/ (轉摘不標原文出處可恥)

 

 

 

 

------------------->>>>


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()