如何让程序集在编译时自动添加到GAC

系统 1539 0

  如果你的工程在调试时需要某些程序集存在于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。

 

 

 

如何让程序集在编译时自动添加到GAC


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论