对于在Web中注册.NET COM对象的每个示例,我都看到了用于完成工作的工具“regasm”。每个人都这样做!
但它从来没有对我有用!我厌倦了试图克服它!我唯一的解决方案是regsvr32,它需要一个我只能用C ++定义的函数
请告诉我为什么不能正常工作!
考虑到它不能在我的所有4台计算机上运行,再加上3台虚拟机,将Windows 7运行到2000,是否有人可以向我展示一个关于regasm呼叫的工作示例?我想我是个白痴。
答案 0 :(得分:8)
无法使用Regsvr32.exe注册[ComVisible] .NET程序集。它没有Regsvr32所需的DllRegisterServer入口点。您必须使它与Regasm.exe或安装项目一起使用。将服务器部署到另一台计算机时,后者是必需的。
失败模式很少。除了:
忘记使用/ codebase选项。如果您不将程序集部署到GAC,则必需,这是您在开发计算机上不应该执行的操作。
使用错误版本的Regasm.exe。 64位计算机上有两个,如果客户端代码是64位,则Framework64目录包含您必须使用的目录。
从未提升的命令提示符运行它。 Regasm.exe写入注册表的HKLM配置单元,这是UAC主动阻止的。这是Vista和Win7的一个问题。
当然也可能让装配严重错误。不要创建一个或多个接口和/或类[ComVisible]。
答案 1 :(得分:0)
它可能,我以前遇到过这个挑战,我在cmd窗口上运行了这个代码并且它有效 我发现它依赖于.net框架的版本,程序集是buit 复制并粘贴以下代码
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\regasm.exe MyAssembly.dll
如果适合您,请投票。