在为COM互操作注册.NET程序集时,我目前按以下顺序执行两个步骤:
regasm /tlb:MyDll.tlb Mydll.dll
gacutil /i Mydll.dll
我使用regasm
来注册COM的类型库,使用gacutil
将程序集安装到全局程序集缓存中。这两个动作的顺序是否重要?另外,当我更新我的dll时,我需要取消注册并重新注册它,从gac卸载并重新安装它,两者都需要还是都不需要?
在为COM互操作注册.NET程序集时,我目前按以下顺序执行两个步骤:
regasm /tlb:MyDll.tlb Mydll.dll
gacutil /i Mydll.dll
我使用regasm
来注册COM的类型库,使用gacutil
将程序集安装到全局程序集缓存中。这两个动作的顺序是否重要?另外,当我更新我的dll时,我需要取消注册并重新注册它,从gac卸载并重新安装它,两者都需要还是都不需要?
顺序很重要吗?
不是。
当dll改变时,需要在GAC中重新安装吗?
需要。
当dll改变时,需要重新注册COM吗?
这取决于情况。如果你在COM dll中添加了新类型,则需要重新注册。如果你只是在现有类型的一些内部内容上进行了少量更改,则不需要。但为了保险起见,请始终取消注册并重新注册。
/codebase
,但我仍然对它的工作原理有疑问。我从这个问题开始了另一个问题:http://stackoverflow.com/questions/3062754/do-i-need-to-force-the-gac-to-reload-an-assembly-is-this-possible - Ben McCormack