我正在开发一个具有4个.net com interop dll的Installshield项目。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Regasm.exe /tlb myassembly.dll /codebase
来注册程序集。 答案 0 :(得分:2)
Build中的COM Extract用于非托管DLL。 .NET COM Interop属性适用于COM Visible。这将导致InstallShield在构建过程中执行regasm / regfile并将结果收集到Registry表中。在安装过程中,将编写注册表,而无需将进程调用到Regasm。
在MSDN上的Regasm中有一条关于/ regfile没有执行/捕获用户注册码的说明。如果此过程仍然不够好,请使用诸如InstallWatch之类的工具来捕获/区分注册表之前和之后的内容,以观察“缺少”的内容,然后在注册表视图中的InstallShield中创建它。重建,重置VM并冲洗并重复直至其工作。
答案 1 :(得分:0)
这" C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Regasm.exe / tlb myassembly.dll / codebase"只有在目标计算机上安装了.NET 4.0及更高版本时才有效。 对于以前的.NET版本,从2.0.5077文件夹运行Regasm.exe: " C:\ Windows \ Microsoft.NET \ Framework \ v2.0.5077 \ Regasm.exe / tlb myassembly.dll / codebase"
请参阅注册表HKLM \ Software \ Microsoft.NET Framework \以获取更多信息以及安装的.NET版本