检测文件是否已注册,并能够注册它

本文关键字:注册 是否 检测 文件 | 更新日期: 2023-09-27 18:11:50

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

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

提前感谢您的帮助

编辑:好的,那么你如何检测。net程序集是否从c#程序中注册?

检测文件是否已注册,并能够注册它

您应该定义"注册"的含义。标准DLL文件没有在任何地方注册。(这就是为什么可以看到混乱被称为"DLL地狱"。)

还是COM?

COM组件使用regsvr32.exe进行注册。你可以调用它来注册你的文件。这是最简单的方法。如果你出于某种原因不想要这种简单的方式,你可以手动完成——阅读COM文档中有关组件如何注册自身的信息。(将文件加载到地址空间中,并通过调用其中的注册函数来注册它自己。)

如果你不知道里面有什么组件,我不知道如何合法地检测一个特定的文件是否注册为COM组件主机。但是如果你知道这个组件,你可以尝试创建这个组件。如果创建失败,说明文件还没有注册。

或者它们是。net汇编文件?

在。net中,你不允许随意"注册"文件,你需要管理员权限。(进程必须在提升模式下运行。)但是,您通常不需要注册就可以使用这些。net DLL文件。通常只有非常可信的核心系统组件才会在GAC中注册。我认为这可能是一个安全漏洞,如果你试图添加你的私人文件到GAC。所以我想问一下,在那里注册它们是否真的那么重要