一个奇怪的错误:
错误 MSB8011:无法注册输出。请尝试启用每用户
从命令提示符重定向或注册组件
提升的权限。 C:\程序
文件\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets 744
当我尝试在 ActiveX 控件中使用 OpenSceneGraph (OSG) 时,出现此错误。谷歌搜索显示了各种解决方案,但并没有真正解决问题或找到错误的确切原因,所以我想把解决方案放在一个地方:这里。
我找到了解决方案,并将很快回答我自己的问题,以便人们遇到同样的问题时可以找到解决方案。
当 Visual Studio (2010) 找不到创建 OCX 的程序所需的依赖 dll 文件时,会发生此错误。 OCX 在项目的 Debug 目录中创建(用于调试版本),并将“工作目录”(在项目设置中)指定为依赖 DLL 所在的文件夹,不会帮助 Visual Studio 定位 DLL。
现在的问题是(这就是解决问题变得令人头疼的原因),有时,如果 Visual Studio 无法创建 OCX,您将无法在 OCX 上运行 Dependency Walker。所以你永远不会发现问题出在丢失的 DLL 上。
如果您知道需要将哪些 DLL 放在 Debug 文件夹中,只需将它们放在那里,错误就会消失。
如果您不知道,并且您的 OCX 未创建,请转到项目设置 > 链接器 > 常规 > 寄存器输出
并将值设置为“否”。这将为您创建 OCX,但不会执行注册过程,此时需要依赖的 DLL。
双击 OCX 后,Dependency Walker 将显示缺少的 DLL(带有黄色圆圈图标),只需将这些 DLL 放在与 OCX 相同的文件夹中,您的程序就可以正常工作。就是这么简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)