Windows 7下VS引用Com组建编译错误的一个解决方法

项目中引用了C++写的COM组件,以前在windows server 2008 R2+VS 2010下没有问题,重装系统后使用windows 7+ VS 2010,编译报错:

 

Error         1       Cannot register assembly "E:\WorkFolder\CardManagement\SourceCode\CardMW\Rare.Card.Libary\bin\Debug\Rare.Card.Libary.dll" - access denied. Please make sure you're running the application as administrator. Access to the registry key 'HKEY_CLASSES_ROOT\Rare.Card.Libary.MifareOneHelper' is denied. Rare.Card.Libary

 

解决办法:

若将项目-属性-编译-Register for com interop前面的勾去掉,会出现运行时错误

解决方法:用Regasm进行手工注册

Win7下必须以管理员身份运行,否则注册不会成功。

C:\Windows\Microsoft.NET\Framework\v2.0.50727\Regasm.exe

如果不行,则重新启动VS,选择以管理员身份运行,则可以进行自动注册

实际上,还有一个变通的办法,直接使用管理员身份在开始菜单中打开VS就可以了,不过每次都这样打开有些麻烦而已。

你可能感兴趣的:(windows 7)