利用VS2010的項目生成事件屬性進行生成文件的復制與打包


在實際開發過程中,一個公共使用的類庫,在項目生成DLL后需要被復制到不同的目錄下被引用,是不是覺得每次生成之后都需要人工復制是很麻煩的一件事情

我們可以利用VS中的項目生成事件屬性來進行生成后的DLL復制到指定的目錄,或者進去其他的操作,比如打包成.zip的壓縮包

屬性如圖:

第一:需要在生成前進行操作,就在預先生成事件命令行寫需要執行的bat代碼,如果不會請百度如何寫。

這里記錄下我項目中需要使用的代碼:

if not exist $(ProjectDir)..\..\SiteDll\ClientBin\Modules md $(ProjectDir)..\..\SiteDll\ClientBin\Modules\

這里需要解析下,$(ProjectDir)是VS的宏定義,生成的是當前項目的目錄路徑

這一行代碼的作用是,如果不存在modules這個文件夾則創建一個

第二:生成后要進行復制dll到指定路徑,把dll壓縮成zip格式的壓縮文件,這里根據不同的需求作出不同的處理,

代碼如下:

copy $(TargetPath) $(ProjectDir)..\..\ProjDll\$(TargetFileName)
if exist "%ProgramFiles%\WinRAR\winrar.exe"  ("%ProgramFiles%\WinRAR\winrar.exe"  a "$(ProjectDir)bin\Debug\WorkflowDesigner.dll.zip" "$(ProjectDir)bin\Debug\WorkflowDesigner.dll" )
copy $(TargetPath).zip $(ProjectDir)..\..\SiteDll\clientbin\Modules\$(TargetFileName).zip
copy $(TargetPath).zip $(ProjectDir)..\LEGS.Web\clientbin\Modules\$(TargetFileName).zip

下面解析下以上的代碼

1、copy $(TargetPath) $(ProjectDir)..\..\ProjDll\$(TargetFileName)

注意:$(TargetPath)生成的是完整的文件目錄,比如DLL的項目名稱為abc這里生成的路徑如d:\tets\bin\debug\abc.dll

2、if exist "%ProgramFiles%\WinRAR\winrar.exe"  ("%ProgramFiles%\WinRAR\winrar.exe"  a "$(ProjectDir)bin\Debug\WorkflowDesigner.dll.zip" "$(ProjectDir)bin\Debug\WorkflowDesigner.dll" )

這里查看了下WinRaR的幫助文檔就是利用bat語句進行調用winrar來把文件壓縮成zip格式的壓縮文件,先判斷ProgramFiles目錄下是否存在winrar.exe文件,存在則調用

命令為:"%ProgramFiles%\WinRAR\winrar.exe" a "壓縮后的目標文件" ""需要壓縮的文件

3、copy $(TargetPath).zip $(ProjectDir)..\..\SiteDll\clientbin\Modules\$(TargetFileName).zip
copy $(TargetPath).zip $(ProjectDir)..\LEGS.Web\clientbin\Modules\$(TargetFileName).zip

這里的代碼很簡單,就是復制文件到指定目錄而已

 

 

 


免責聲明!

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



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