VS项目选项“注册COM互操作”到底做了什么?因为当我在启用此选项的情况下构建我的库时,我可以从VBScript对我的库调用CreateObject。但是,如果我不使用它进行构建,然后手动运行regasm,那么CreateObject就会失败。所以我想知道-- VS2010做了什么我没有做的事情?
发布于 2010-08-21 04:34:06
它的作用与使用/tlb和/codebase选项运行Regasm.exe相同。您可能忘记了/codebase选项。Regasm喜欢假设你把DLL放在GAC中,当你不放的时候生成一个警告,GAC确实是一个很好的避免DLL地狱的方法,总是COM问题。但是在你的开发机器上是不合适的,你不想在开发和测试代码的时候污染GAC。它只在你的用户的机器上才重要,这可能会暴露给多个版本。
在64位计算机上使用错误的Regasm.exe版本是另一种陷入麻烦的方式,您的计算机上通常有4个版本。请务必区分32位和64位版本的(c:\windows\microsoft\framework和framework64),,它们写入不同的注册表项。您希望选择与客户端应用程序兼容的应用程序。同时使用这两种模式也是可以的,.NET代码可以在任何一种模式下运行,但非常不寻常。并区分v2.0.50727 (.NET 2.0到3.5SP1)和v4.0版本。选择正确的Visual Studio命令提示符是成功的一半。
https://stackoverflow.com/questions/3534600
复制相似问题