什么是“注册COM Interop”呢?

什么VS项目选项“注册COM互操作”实际上做什么? 因为当我使用此选项启用我的库时,我可以从VBScript调用我的库上的CreateObject。 但是,如果我没有这个build立,然后手动运行regasm的CreateObject失败。 所以我想知道 – 什么VS2010做,我没有做?

它与使用/ tlb和/ codebase选项运行Regasm.exe的function相同。 / codebase选项可能是你忘记的那个。 Regasm喜欢假设您将该DLL放入GAC中,并在不这样做时生成警告。 GAC确实是避免DLL地狱的一个很好的方法,总是一个COM问题。 但是在您的开发机器上不适合,您不想在开发和testing代码时污染GAC。 它只在用户的机器上很重要,可能会暴露在多个版本的机器上。

在64位机器上使用Regasm.exe的错误版本是另一种麻烦的方法,通常在您的机器上有4个版本。 一定要区分32位和64位版本(c:\ windows \ microsoft \ framework vs framework64),他们编写不同的registry项。 你想select一个兼容的客户端应用程序。 使用这两个也没关系,.NET代码可以运行在任何一种模式,但很不寻常。 并区分v2.0.50727(.NET 2.0到3.5SP1)和v4.0版本。 select正确的Visual Studio命令提示符是战斗的一半。