.net 为什么regasm/regfile看起来不完整?
我有一个.NET程序集需要在安装时注册。我注意到当直接使用.net 为什么regasm/regfile看起来不完整?,.net,registry,installshield,.net,Registry,Installshield,我有一个.NET程序集需要在安装时注册。我注意到当直接使用regasm与通过regasm的注册表脚本安装时,注册表有细微的差别 这是我的测试: 我导出原始HKCR配置单元,然后运行:regasm my.dll 从那里,我导出随后的HKCR配置单元和性能差异 然后将该差异与regasm my.dll/regfile 通过regasm my.dll添加的几个非常重要的条目永远不会与从regasm命令输出的注册表文件一起添加为什么? 从安装的角度来看,我非常讨厌在安装过程中调用regasm。我宁愿运行
regasm
与通过regasm
的注册表脚本安装时,注册表有细微的差别
这是我的测试:
我导出原始HKCR配置单元,然后运行:regasm my.dll
从那里,我导出随后的HKCR配置单元和性能差异
然后将该差异与regasm my.dll/regfile
通过regasm my.dll
添加的几个非常重要的条目永远不会与从regasm
命令输出的注册表文件一起添加为什么?
从安装的角度来看,我非常讨厌在安装过程中调用
regasm
。我宁愿运行这个.reg脚本。我现在正在使用InstallShield,它在引擎盖下也缺少额外的注册表项(它似乎嵌入了用/regfile
标志输出的注册表更改)。额外的注册表操作正在幕后进行,在方法中装饰有ComRegisterFunction
属性。显然,这些方法不是通过/regfile
开关调用的。Per(备注部分)
可以使用/regfile选项生成包含以下内容的.reg文件:
更改注册表项,而不是直接对
登记处。您可以通过导入来更新计算机上的注册表
使用注册表编辑器工具(Regedit.exe)创建.reg文件。请注意
.reg文件不包含任何可由用户进行的注册表更新
用户定义的寄存器函数。请注意,仅使用/regfile选项
发出托管类的注册表项。此选项不发射
TypeLibIDs或InterfaceID的条目
InstallShield有一个名为“.NET COM Interop”的设置,它基本上告诉生成引擎在生成MSI之前执行regasm/regfile并将结果转换到注册表表中。如果您愿意,您可以继续这样做,但您必须静态地添加额外的内容。缺少哪些条目?它非常特定于应用程序(GUID不是“我们的”,但可能是由依赖项拉入的):
[HKEY_CLASSES_ROOT\CLSID\{xxxx}\Implemented Categories\{B56A7C42-83D4-11D2-A2E9-08009B6F22B}]
googleing它似乎与ESRI Mx命令有关-您想知道什么问题的答案?是的,它与此相关。我的问题是:regasm/regfile
的输出为什么不生成这个条目?此注册表项仅在直接执行regasm
后才显示在系统上。