Build Double Assembly In VisualStudio
會興起這樣的念頭是因為我最近的工作中因為負責的子功能多達十項,每一次重新建置組件檔更新到專案中都要複製十次,實在十分繁瑣也因此起了個:「若能把所有專案建置的組件檔都集中在一處然後全部一起複製,接著貼上一個指定的資料夾中這樣就省事多了!」 上網找MSDN的說明找到這個:建置前事件/建置後事件命令列對話方塊 這個MSDN上面的連結主要是說明建置命令的聚集的意含是什麼,對於客製化自己的建置指令非常有用處。 依照MSDN的說明那我的需求要如何達成呢?很容易!在建置後事件命令對話方塊中輸入: 1 copy "$(TargetDir)*.*" "$(SolutionDir)Libary.DLLPool\" 這段指令的意思就是 複製 TargetDir 中的所有檔案 放置到"方案的目錄中的Libary.DLLPool"中(注意!這個路徑的最後面會加上一個反斜線) 這樣的話我的組件檔就會在Libary.DLLPool中也有相同的一份了! Step1.於專案中按下右鍵選擇屬性 Step2.按下在建置後事件頁籤中的"建置後事件命令列"的建置後進行編輯按鈕 Step3.按下聚集按鈕來針對自己的需求進行插入與編輯(ex. copy “$(TargetDir)*.dll” “$(SolutionDir)Libary.DLLPool" ) Step4.編輯完成按下重新建置,建置完成就會多一個組件副本在指定的資料夾中 ===========================2012-02-15 新增================================ 範例: 判斷目前建置的平台為Debug或是Release模式來區分組件複製的位置。 這邊要特別注意 batch 的寫法;要把判斷都寫完然後在用 goto 指令跳到實際執行的指令位置,執行完成後要用另外一個 goto 跳出函式之外。 1 2 3 4 5 6 7 8 9 if $(ConfigurationName)==DeBug goto debug if $(ConfigurationName)==Release goto release :debug copy $(TargetPath) $(SolutionDir)DLLPool\ goto finish :release copy $(TargetPath) $(SolutionDir)DLLPool_Release\ goto finish :finish