如果你的工程在調試時需要某些程序集存在于GAC,但那些程序集是你另外的工程編譯時生成的,或者因為其它原因是動態變化的,那么最好的做法是在編譯該工程時就把這些程序集重新添加到GAC中。
如果因為部署等工作導致你的GAC中存在你工程的程序集,而使你不能加斷點調試等,而這種事情又經常發生,那么在編譯該工程時就把這些程序集重新添加到GAC中也不失為一個好的解決方案。
讓程序集在編譯時自動添加到GAC的思路很簡單,就是寫一個批處理文件,然后在工程的生成事件中調用這個批處理文件。具體實現如下:
1. 在你工程的目錄下創建一個Register.bat文件,在批處理中調用微軟gacutil.exe工具,gacutil.exe工具的位置根據你操作系統版本好不同而不同,XP是v6.0A,而Vista和Win7則是v7.0A。這里假設你有2個項目:MyProject1和MyProject2,MyProject1是個可執行文件,而MyProject2是個動態鏈接庫。
@ECHO OFF
SET PATH=%PATH%;C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin;
set solutionPath=C:\Users\cyljxu\Documents\Visual Studio 2008\Projects\WindowsFormsApplication17\
gacutil /if "%solutionPath%MyProject1\bin\%~1\MyProject1.exe"
gacutil /if "%solutionPath%MyProject2\bin\%~1\MyProject2.dll"
EXIT 0
注意:\bin\%~1\后面的%~1指的是的編譯配置,比如Debug或者Release等,這將在Build Event的參數中傳入
2. 打開項目的屬性頁面,然后添加一個Post-build event command line:
call "$(ProjectDir)Register.bat" "$(ConfigurationName)"
?
需要注意的事項:
1. 凡是要加入GAC的程序集都需要簽名。
2. 由于gacutil命令需要管理員權限,所以在Vista和Win7下你必須以管理員方式運行IDE。
?
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
