你好 @西波 温
regasm 本身没有 /user 参数(/user 是 regsvr32 的参数,不是 regasm 的)。
是否需要管理员权限取决于 COM 注册写到哪里:
- 机器范围注册(HKLM\Software\Classes\...)需要管理员权限
- 用户范围注册(HKCU\Software\Classes\...)不需要管理员权限
我在 Windows 上做了测试:
- 在非管理员命令提示符下运行:
RegAsm.exe ComTest.dll /codebase会失败,并提示:“写入注册表时发生错误。使用所选选项需要管理员权限…” - 在管理员命令提示符下运行相同命令会成功(“Types registered successfully”),并且会在下面位置创建 CLSID 相关项:
HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\CLSID\\{guid}
另外,把输出导出成 .reg 文件再手动导入,并不会执行 [ComRegisterFunction]——这些方法只会在 regasm 进行注册/反注册时被调用。
如果您觉得此回复有帮助且信息充分,欢迎参考相关指南操作:查看指南 或提供反馈。感谢您的支持。