OpenCL:创建新的opencl项目时强名称验证失败

时间:2014-07-25 20:56:13

标签: visual-studio-2010 opencl strongname windows64

This is the OpenCL我正在关注的第一个教程。

我无法创建新的OpenCL项目。当我尝试在Windows 7,64位的visual studio 2010中创建新的OpenCL项目时,出现"Strong name validation failed. (Exception from HRESULT: 0x8013141A)"错误。因此无法创建新项目。

阅读一些论坛说,我必须用dll做一些事情。但我不知道在说什么。

有些建议是:http://www.lookout.net/2006/04/bypassing-strong-name-verification-for.html要求我这样做:

sn -Vr *,36e4ce08b8ecfb17

但是我为36e4ce08b8ecfb17添加了什么,这是程序集的名称,但在我的情况下,程序集的名称是什么?我刚开始时遇到这个问题,当时我只是尝试创建新的OpenCL项目。

有人可以给我一个特定于OpenCL的提示吗?

enter image description here

然后我点击OK,我明白了:

enter image description here

我尝试了什么

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>sn -Vl

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly/Strong Name                  Users
===========================================
*,*                                   All users
iisresolver,B03F5F7F11D50A3A          All users

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>
c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>sn -Vr * ,B03F5F7F11D50A3
A

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Failed to open registry key -- Unable to format error message 00000005

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>sn -Vr iisresolver , B03F
5F7F11D50A3A

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Failed to open metadata scope on iisresolver -- The system cannot find the file
specified.

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>sn -Vr * , *

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Failed to open registry key -- Unable to format error message 00000005

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>

使用CMD的提升权限后

C:\Windows\system32>sn -Vr * ,B03F5F7F11D50A3A

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Verification entry added for assembly '*,B03F5F7F11D50A3A'

这里没有收获,所以累了这个:

C:\Windows\system32>sn -Vr * ,*

Microsoft (R) .NET Framework Strong Name Utility  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Verification entry added for assembly '*,*'

C:\Windows\system32>

不幸的是没有收获。

3 个答案:

答案 0 :(得分:0)

这是一个烦人的问题,很容易被回避用于开发目的。

要禁用强名称验证,只需打开visual studio命令行(例如,在Windows 7中:开始>>所有程序>> Microsoft Visual Studio 2010>> Visual Studio工具> > Visual Studio命令提示符(2010))

然后输入sn -Vl,它将返回为强名称验证注册的所有程序集的列表。

然后键入sn -Vr *,idnumberhere以禁用该程序集的强名称验证。

如果您收到错误(Failed to open registry key -- Unable to format error message 00000005),则通常与权限相关:您的用户名可能没有更改强名称验证的必要权限,因此更改了{{1}的权限允许完全访问您的用户名,一切都应该没问题了:)

此外,请确保以提升的权限运行VS命令行,因此请选择C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA

希望这会有所帮助。 :)

如果您需要更多信息,请告诉我:)

答案 1 :(得分:0)

此错误可能是由于Windows注册表尝试修改它时出错 要么 在您的计算机上安装Intel或AMD OpenCL SDK,尝试再次创建项目

或更新项目的include和library路径,以从安装的OpenCL SDK加载所需信息

答案 2 :(得分:0)

我今天遇到了同样的问题,不幸的是,使用sn.exe无法让它工作。

但是,对我有用的解决方法是只使用英特尔的一个示例程序作为启动项目,并从那里进行修改。 (例如basic capabilities sample