昨天写个自用工具。报了Type or Namespace Not Found Error。找了好久资料都没解决。最后一个大神哥们说了句加入gac试试。
立马百度了一下资料,按其步骤解决了,做个记录,看谁能碰得到,记得收藏哦。
生成的C# DLL需要以管理员权限打开工程和编译,以便自动注册。同时,可以将程序集添加到GAC(全局程序集缓存)以让系统管理员通过用户权限来控制Assembly的访问。具体操作步骤如下:
1.以管理员权限打开C# DLL工程并编译。
2.在命令提示符中输入
regasm phstool.dll /tlb: phstool.tlb /codebase
3.将类型库导入到注册表。
输入
gacutil /i phstool.dll
将此.net程序集添加到GAC。
顺便进一步了解了一下gac
在没有加入GAC(Global Assembly Cache)时,可能会出现以下错误和提示:
1.文件找不到错误(File Not Found Error):当程序引用了一个未加入GAC的程序集时,如果该程序集的路径无法找到或者文件不存在,就会报文件找不到错误。
2.类型或命名空间找不到错误(Type or Namespace Not Found Error):如果程序引用了一个未加入GAC的程序集,但是该程序集中定义的类型或命名空间无法找到,就会报类型或命名空间找不到错误。
3.版本冲突错误(Version Conflict Error):如果程序引用了多个版本的同一个程序集,而这些版本之间存在冲突,就会报版本冲突错误。这种情况下,编译器无法确定使用哪个版本的程序集。
4.引用错误(Reference Error):当程序引用了一个未加入GAC的程序集,但是该程序集的依赖项缺失或者版本不匹配时,就会报引用错误。这种情况下,需要手动解决依赖项问题或者更新程序集版本。
5.运行时异常(Runtime Exception):在运行时,如果程序使用了未加入GAC的程序集,并且该程序集存在问题或者与其他组件不兼容,就可能导致运行时异常。这些异常可能包括类型转换异常、方法调用异常等。
在此记录分享。愿大家少走弯路(记得将phstool改成你自己的问题dll哦。感谢前人的踩坑。