Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 正在注册DLL和.tlb_Vb.net_Vb6 - Fatal编程技术网

Vb.net 正在注册DLL和.tlb

Vb.net 正在注册DLL和.tlb,vb.net,vb6,Vb.net,Vb6,我在一家公司工作,该公司在System32文件夹/SYSWOW64文件夹中注册了大量COM DLL。我记得不久前的一个问题,Hans Passent说这是错误的,因为指定的文件夹是用于Windows DLL的。我找不到帖子,所以我想检查一下这是否正确 另外,如果我想在外部文件夹中注册COM DLL或TypeLibrary,那么我可以只使用以下命令(对于COM): regsvr32 app.dll 最后,我读到了关于Regasm的代码库标志:。如果要注册TypeLibrary(.TLB),是否必须

我在一家公司工作,该公司在System32文件夹/SYSWOW64文件夹中注册了大量COM DLL。我记得不久前的一个问题,Hans Passent说这是错误的,因为指定的文件夹是用于Windows DLL的。我找不到帖子,所以我想检查一下这是否正确

另外,如果我想在外部文件夹中注册COM DLL或TypeLibrary,那么我可以只使用以下命令(对于COM):

regsvr32 app.dll

最后,我读到了关于Regasm的代码库标志:。如果要注册TypeLibrary(.TLB),是否必须使用此标志?如果.NET程序集使用未签名的第三方库,会发生什么情况?

如果您正在谈论在系统文件夹中安装COM DLL,那么您是正确的。所有应用程序及其支持库都应安装在Program Files文件夹或Common Program Files文件夹下

您还可以使用REGSVR32.EXE手动注册DLL和OCX。“外部文件夹”不是Windows概念-您可以在文件系统中的任何位置注册组件,包括Windows和Windows系统文件夹。顺便说一下,如果使用安装程序,则不必使用REGSVR32.EXE

但是,不能使用REGSVR32.EXE注册TLB文件,因为该应用程序基本上加载DLL/OCX,并调用库上的导出函数,因此库可以有效地自行注册。相反,您需要另一个工具,例如REGTLIB


您不能使用/CODEBASE注册原始类型库,因为REGASM用于将.NET DLL注册为COM组件,而不是TLB文件。

理论上,只有Microsoft提供的DLL才能进入系统文件夹。第三方应向其开发人员客户提供相关的.DEP文件,该文件标识正确的安装位置、子依赖项和其他内容—所有这些都使用“开发人员”安装程序,而不是bag文件原始文件。即便如此,许多第三方供应商也养成了以系统文件夹为目标的坏习惯。当他们提供一个.DEP文件时,它也指向那里。这是个错误,但这就是生活!至于.TLB文件,通常只需要在开发工作站上使用。Sheesh,上面的编辑错误。应该读过“一包原始文件”,其中的“包”是一个压缩文件或其他东西,让你自己决定文件放置和图书馆注册。