Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问被拒绝VS 2010_C#_Visual Studio 2010_Access Denied - Fatal编程技术网

C# 访问被拒绝VS 2010

C# 访问被拒绝VS 2010,c#,visual-studio-2010,access-denied,C#,Visual Studio 2010,Access Denied,我正在尝试使用C和VS2010构建COM dll文件-框架3.5-: 如果我尝试在不执行清理的情况下构建项目,它将进行构建,但是这只在任何清理操作之前起作用,在清理项目后,我将陷入此错误 错误16无法注册程序集C:\Users\User\Desktop\Demo[Demo] SCPP T1\bin\Debug\PrinterPlugin.dll-访问被拒绝。请确保 您正在以管理员身份运行应用程序。访问 注册表项 “HKEY_CLASSES_ROOT\CLSID{B9162A23-45F9-47C

我正在尝试使用C和VS2010构建COM dll文件-框架3.5-:

如果我尝试在不执行清理的情况下构建项目,它将进行构建,但是这只在任何清理操作之前起作用,在清理项目后,我将陷入此错误 错误16无法注册程序集C:\Users\User\Desktop\Demo[Demo] SCPP T1\bin\Debug\PrinterPlugin.dll-访问被拒绝。请确保 您正在以管理员身份运行应用程序。访问 注册表项 “HKEY_CLASSES_ROOT\CLSID{B9162A23-45F9-47CC-80F5-FE0FE9B9E1A2}”是 否认。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 3912 5 PrinterPlugin

由于COM注册不兼容,我将原始文件基于FrameWork 4.0,然后转换为3.5。使用Framework 4.0构建将成功构建,但将生成TYPELIB文件。注册库时,该文件丢失。 更详细地说,旧的PrinterPlugin在framework 3.5的基础上像一个魔咒一样工作,它可以正确注册,并且不会出现任何警告或错误,这些错误是在添加了使用framework 4.0分发并使用其他microsoft库的另一个SDK的一些组件后出现的,像bidispl.dll一样,ReachFramework。。。等等

编辑0

我已经尝试过从每个位置以管理员的身份启动VS2010

编辑1

我曾尝试使用Framework3.5构建一个新项目,但仍然面临相同的错误,即使在从Common7>IDE文件夹以管理员身份执行devenv.exe时也是如此

错误18无法注册程序集 C:\Users\Ameer\Desktop\projects\PrinterPlugin不调整大小 2015年5月17日\printerplugin无需调整大小 2015年5月10日\bin\Debug\PrinterPlugin.dll-访问被拒绝。 请确保您以管理员身份运行应用程序。 访问注册表项 “HKEY_CLASSES_ROOT\CLSID{B9162A23-45F9-47CC-80F5-FE0FE9B9E1A2}”是 否认。C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets 3912 5 PrinterPlugin


我猜这与两个SDK之间的兼容性有关。

以管理员身份启动Visual Studio,以便能够将COM组件注册为构建的一部分。.已经这样做了,我以管理员身份从startmenu启动了它,但这没有帮助。我的建议是启动regedit并手动删除注册表项HKEY_CLASSES_ROOT\CLSID{B9162A23-45F9-47CC-80F5-FE0FE9B9E1A2},但我现在注意到CLSID后面缺少一个反斜杠。您的输入错误可能是您问题的解决方案?遗憾的是,这并不是因为我不知道它是如何从那里删除的,但不是这样,我尝试从regedit中删除条目,但也不起作用,可能是框架不兼容,较新的SDK基于Fw4.0,而旧的SDK基于Fw3.5。整个项目必须使用FW3.5构建,否则它将无法注册组件。您有一个非常清楚的错误消息。一个进程可能是构建应用程序的进程没有访问特定注册表项的权限,该注册表项需要管理权限才能更改。当您对COM组件执行COM注册时,需要进行此更改。这与框架版本或SDK兼容性无关。您可以使用来发现哪个进程无法修改注册表。