首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测文件是否已注册并能够注册该文件

检测文件是否已注册并能够注册该文件
EN

Stack Overflow用户
提问于 2011-10-21 20:19:52
回答 1查看 319关注 0票数 1

我正在试着用c#写一个程序。它的一部分需要能够检测一个文件(主要是dll,但也有一些其他文件)是否已注册。然后用户必须能够选择他/她想要注册的一个(或多个)文件,并且程序必须注册它。它不应该只是注册所有的文件,用户必须决定注册哪个文件

所以我主要想知道如何检测它是否已注册,以及如何注册它

预先感谢您的帮助

编辑:好的,那么如何检测是否从C#程序中注册了.net程序集呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-21 20:27:23

你应该定义“被注册”是什么意思。标准DLL文件不会在任何地方注册。(这就是为什么可以看到被称为"DLL地狱“的混乱。)

或者是COM?

COM组件是使用regsvr32.exe注册的。你可以调用它来注册你的文件。这是最简单的方法。如果出于某种原因,您认为不需要这种简单方法,您可以手动执行此操作-阅读COM文档,了解有关组件如何注册自身的信息。(您将文件加载到您的地址空间中,并通过调用其中的注册函数让它进行自我注册。)

如果你不知道里面是什么组件,我不知道如何合法地检测一个特定的文件是否注册为COM组件宿主。但是,如果您知道组件,您可以尝试创建组件。如果创建失败,则该文件尚未注册。

或者它们是.NET程序集文件?

在.NET中,你不能随意“注册”文件,你需要管理员权限。(该进程必须在提升模式下运行。)但同样,您通常无需注册即可使用这些.NET DLL文件。通常,只有信任良好的核心系统组件才会在GAC中注册。我认为这可能是一个安全漏洞,如果你试图将你的私人文件添加到GAC中。因此,我会问,在那里注册它们是否真的如此重要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7849293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档