2010-06-17 14 views
3

在注册.NET程序集为COM Interop,我做两件事情,目前在这个顺序:在注册时,订单是否重要,用于COM互操作的gac-ing程序集?

regasm /tlb:MyDll.tlb Mydll.dll 

gacutil /i Mydll.dll 

我用regasm注册类型库COM和gacutil到组件安装到GAC。我做这两个操作的顺序有关系吗?另外,当我更新我的dll时,是否需要取消注册并重新注册它,从gac中卸载它并重新安装它,两者还是两者都不?

回答

3

命令是否重要?

你需要的时候 的dll已经改变了GAC重新安装?

是的。

当dll发生变化时,您是否需要重新注册COM ?

这取决于。如果你在COM DLL中添加了新类型,那么是的。如果你只改变了现有类型中的一些内部事物,那么没有。尽管如此,总是取消注册并重新注册。

+0

感谢您的回答。我经历了取消注册和重新注册的仪式,以及不干预和重新注册。 VB6看到了我添加的新类型,但出于某种原因,它会抛出一个错误,它无法找到在运行时指定的类型。为什么会这样? – 2010-06-17 14:25:31

+0

通常来自VB6/VBA的错误不是非常有用的。您可以尝试不将您的程序集添加到GAC,而是使用/ codebase开关将它们注册为regasm,并查看是否有帮助。 – 2010-06-17 14:47:33

+0

我已经为''/ codebase'在过去为我工作,但我仍然有问题,这应该如何工作。我开始另一个问题源于这个问题:http://stackoverflow.com/questions/3062754/do-i-need-to-force-the-gac-to-reload-an-assembly-is-this-possible – 2010-06-17 14:51:06

相关问题