首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IntPtr.ToInt32() Marshal.ThrowExceptionForHR() - 查询 GAC

首先,让我们了解一些基本术语。

  • IntPtr:整型指针,指向一个内存地址。
  • Marshal:封装或委托,通常用于将一个对象的引用从一个进程映射到另一个进程。
  • Exception:异常,表示一个错误发生的情况。
  • HR:人力资源,这里指组织或团队中的员工。

现在,让我们回答这个问答内容。

问题:如何将IntPtr.ToInt32() Marshal.ThrowExceptionForHR() - 查询 GAC以编程方式查询Microsoft .NET Framework的GAC(Global Assembly Cache)中是否有包含指定的dll?

答案:要编程方式查询Microsoft .NET Framework的GAC中是否有包含指定的dll,可以使用C#中的AppDomain类。通常情况下,我们可以使用AppDomain的Load方法加载特定dll,并在加载成功后从AppDomain中获取该dll的引用。如果加载失败,则可以使用AppDomain的GetAssemblies方法检索当前应用程序域中的所有程序集。如果我们要在加载时处理所有程序集中出现的所有异常,则可以使用AppDomain的ExecuteAssemblyInAppDomain方法来执行特定的程序集。

具体实现步骤如下:

  1. 创建一个AppDomain对象,用于加载和运行目标程序集。AppDomain ad = AppDomain.CreateDomain("LoaderDomain");Assembly asm = ad.Load("your-assembly.dll");Assembly[] assems = ad.GetAssemblies();ad.ExecuteAssemblyInAppDomain(asm.FullName);Exception ex = (Exception)ad.GetException(asm.FullName);需要注意的是,使用AppDomain的方式需要谨慎使用,因为可能会对系统性能造成较大影响,同时也可能带来一些安全风险。因此,在实践过程中需要结合具体情况进行选择。
  2. 使用AppDomain的Load方法加载目标程序集。
  3. 使用AppDomain的GetAssemblies方法获取当前应用程序域中的所有程序集。
  4. 使用AppDomain的ExecuteAssemblyInAppDomain方法执行目标程序集。
  5. 在执行过程中,可以使用AppDomain的GetException方法获取所有异常。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

SYSLIB0005:不支持全局程序集缓存 (GAC)

.NET Core 和 .NET 5 及更高版本消除了 .NET Framework 中存在的全局程序集缓存 (GAC) 这一概念。...为帮助开发人员摒弃这些 API,从 .NET 5 开始,一些 GAC 相关的 API 标记为已过时。 使用这些 API 会在编译时生成警告 SYSLIB0005。...以下与 GAC 相关的 API 标记为已过时: Assembly.GlobalAssemblyCache 库和应用不应使用 GlobalAssemblyCache API 来确定运行时行为,因为它在 ....解决方法 如果你的应用程序查询 GlobalAssemblyCache 属性,请考虑删除该调用。...如果在运行时使用 GlobalAssemblyCache 值在“GAC 中的程序集”流与“不在 GAC 中的程序集”流之间进行选择,请重新考虑流对于 .NET 5+ 应用程序是否仍然有意义。

47920
  • Apriso 开发葵花宝典之传说的完结篇GPM

    授权在有一个以上的生产基地、希望管理全球工厂、希望增长(即增加工厂的数量)并降低部署成本、希望减少升级、更改和维护的成本情况下选用,并且需要购买COE授权才能进行 在本地发布状态,可以使用本地发布仪表板查询位于此服务器上的所有项目...TocPath=Global%2520Deployment%2520View%257CGlobal%2520Deployment%2520Overview%257C_____0 发布顺序 实体和GAC组件等一旦将它们添加到项目的内容中...在存储库中存储项有两种方法: 全部内容-只适用于以下项目: GAC组件 文件 SQL脚本 存储过程(数据库对象) 自定义动作 配置文件 自上次生成包以来检测到的更改列表(“diff”)(以扩展名为.diff...Unable to remove component from GAC The component cannot be removed from GAC....Unable to add *.dll to GAC The GAC component cannot be deployed.

    36410

    Oracle 免费的数据库--Database 快捷版 11g 安装使用与SOD框架对Oracle的CodeFirst支持

    注意安装提示,首先管理员账号Sys和密码,然后是要连接的Oracle服务名,输入相关的服务名,这里默认是 XE,然后保存为一个TNS名字,我用的是mydb,最后还有一个ODP.Net的安装,询问是否安装程序集到GAC...在图例中,我们选择以SysDba的角色进行登录,之后,就可以创建用户,查询表和编辑数据了,很方便,这里我建立了一个名字为SOD的用户,然后用这个用户登录: ? 功能很多,具体内容留给大家去研究了。...最后点击确定,回到下面的界面,展开XE数据库,选择数据表,右键菜单查询数据: ? 至此,Oracle 的安装,连接过程就完成了,很简单。...最后,像下面这样使用查询即可: User user = new User(){ Name="zhang san";}; OQL q=OQL.From(user) .Select() .Where...第一反应,应该是32位于6位程序不兼容的问题,仔细回想下,这可能是 Oracle VS插件安装时候安装到GAC里面的程序集。

    2.9K70

    PostgreSQL的PDF.NET驱动程序构建过程

    我是从下面的地址安装的: http://wzmcc.newhua.com/soft/92182.htm 安装文件名是 dcpostgresqlfree.exe,版本是 5.30.160,安装的时候会选择是否将程序集编译到GAC...            }         }         ///          /// 预处理SQL语句,语句中不能包含"`"(反引号,tab键上面的那个符号)号,如果需要,请使用参数化查询...语句的参数使用“:”作为参数名称,而不是SqlServer样式的“@”,所以下面的方法需要重写: ///          /// 预处理SQL语句,语句中不能包含中括号,如果需要,请使用参数化查询...currentJJDM", currentJJDM);             //cmdInfo.SetParameterValue("@OtherJJDM", OtherJJDM);             //执行查询

    1.4K70

    三维点云语义分割总览

    Pointnet++[论文地址54]对点进行分层分组(即球查询),逐步从更大的局部区域进行学习。针对点云的不均匀性和密度变化等问题,提出了多尺度和多分辨率的聚类方法。...代替了PointNet++中的球查询。...该方法首先查询一组多尺度的同心球体,然后在不同的shell中使用max-pooling操作来汇总统计?使用MLPs和1D卷积得到最终的卷积输出。...在[215]中,图注意卷积(GAC)被提出用来从局部相邻集合中选择性地学习相关特征。该操作是通过基于不同的邻近点和特征通道的空间位置和特征差异动态地分配关注度权重来实现的。...GAC可以学习获取可区分的特征进行分割,并且与常用的CRF模型,具有相似的特征。 Ma等人。[223]提出了一种点全局上下文推理(PointGCR)模块,使用无向图表示,沿通道维度捕获全局上下文信息。

    2.6K41

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    既然是共享存放的位置,那不可避免的会遇到文件名重复的情况,那么为了杜绝该类情况,规定在GAC中只能存在强名称程序集,每当CLR要加载强名称程序集时,会先通过标识去GAC中查找,而考虑到程序集文件名称一致但版本文化等复杂的情况...,所以GAC有自己的一套目录结构。.../tools/developer-command-prompt-for-vs中)来注册至GAC中,值得一提的是在将强名称程序集安装在GAC中,会效验签名。...几个建议是,减换需要创建大量的临时变量的模式、考虑对象池、大对象使用懒加载、对固定容量的集合指定长度、注意字符串操作、注意高频率的隐式装箱操作、延迟查询、对于不需要面向对象特性的类用static、需要高性能操作的算法改用外部组件实现...在调试时可以让开发人员了解并追溯代码所产生的一些事件,并且能够进行回溯以查看应用程序中发生的情形,它是一个非常强大的调试追踪器,它可以捕捉由你代码产生的事件,如异常事件、函数调用(从入口)、ADO.NET的命令(Sql查询语句

    2.8K63

    .Net知识大全(个人整理)

    GAC(Global Assembly Cache),他的作用是可以存放一些有很多程序都要用到的公共Assembly。...这样,很多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。 64.向服务器发送请求有几种方式? 答:get,post。...建议: 1、get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式; 2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式。...可以采用参数化查询语句进行防止。 71.什么是反射? 答:有关程序及其类型的数据被称为元数据(metadata),它们保存在程序的程序集中。...CommandBuilder 此对象用于构建Sql命令,在基于单一表查询的对象中进行数据修改。 DataReader 这是一个快速而易用的对象,可以从数据源中读取仅能前向和只读的数据流。

    1.2K20

    通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core?

    既然是共享存放的位置,那不可避免的会遇到文件名重复的情况,那么为了杜绝该类情况,规定在GAC中只能存在强名称程序集,每当CLR要加载强名称程序集时,会先通过标识去GAC中查找,而考虑到程序集文件名称一致但版本文化等复杂的情况...,所以GAC有自己的一套目录结构。.../tools/developer-command-prompt-for-vs中)来注册至GAC中,值得一提的是在将强名称程序集安装在GAC中,会效验签名。...GAC工具: https://docs.microsoft.com/en-us/dotnet/framework/tools/gacutil-exe-gac-tool 延伸 CLR是按需加载程序集的...在调试时可以让开发人员了解并追溯代码所产生的一些事件,并且能够进行回溯以查看应用程序中发生的情形,它是一个非常强大的调试追踪器,它可以捕捉由你代码产生的事件,如异常事件、函数调用(从入口)、ADO.NET的命令(Sql查询语句

    4.6K30

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券