关于签名时加密失败错误的解决
2008-01-23 16:03
513 查看
搜集自csdn
有些开源项目,在编译时会有一大堆的错误,其中最常见的是:
对程序集“XXX.dll”签名时加密失败 --“读取密钥文件“XXXX.snk”时出错 -- 系统找不到指定的文件。 ”
原因是没有密钥文件,可以使用这样的方法创建一个密钥文件:
1,找到签名工具sn.exe,默认的路径是:系统盘:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin;(如果没有的话通过搜索sn.exe来查找)
2,选择桌面上的“我的计算机”图标,右击,属性/高级/环境变量/系统变量/新建/系统变量 ,弹出新建系统变量对话框,如下设置:
变量名:path
变量值:系统盘:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin;
3,打开命令行,执行
C:
sn -k XXX.snk
会在c盘中生成一个XXX.snk文件,把他剪贴到/XXX/obj/目录下。
编译就可以通过了。
或者最直接的方法就是,不要签名了,找到XXX项目的AssemblyInfo.cs文件,注释掉下面一行:
[assembly: AssemblyKeyFileAttribute("..XXX.snk")]
编译就可以通过了。
下面简单的解释以下strong name:
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconStrong-NamedAssemblies.asp)
加密签名是计算机安全方面的名词,加密分为对称和非对称加密,这里用的是后者,
strong name是进行程序集版本控制和名称保护的,对一个程序集进行签名后就会得到一个strong name。strong name由以下几部分组成程序集的标识(即它的简单文本名称),版本号和区域性信息(如果提供的话),以及公钥和数字签名。strong name可以确保一个程序集名称的唯一性。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。
需要强调的是,是对程序集的加密和签名(包括名称,版本等信息)得到强名称,强名称是唯一的,所以程序集也是唯一的,程序集加密签名成strong name需要使用私钥,这个私钥由keyname和keyfile组成,其中KeyName 是指已经安装在计算机上的加密服务提供程序(CSP)中的密钥。KeyFile 是指包含密钥的文件(其实就是.snk文件)。KeyFile通过sn.exe生成。
有些开源项目,在编译时会有一大堆的错误,其中最常见的是:
对程序集“XXX.dll”签名时加密失败 --“读取密钥文件“XXXX.snk”时出错 -- 系统找不到指定的文件。 ”
原因是没有密钥文件,可以使用这样的方法创建一个密钥文件:
1,找到签名工具sn.exe,默认的路径是:系统盘:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin;(如果没有的话通过搜索sn.exe来查找)
2,选择桌面上的“我的计算机”图标,右击,属性/高级/环境变量/系统变量/新建/系统变量 ,弹出新建系统变量对话框,如下设置:
变量名:path
变量值:系统盘:/Program Files/Microsoft Visual Studio .NET 2003/SDK/v1.1/Bin;
3,打开命令行,执行
C:
sn -k XXX.snk
会在c盘中生成一个XXX.snk文件,把他剪贴到/XXX/obj/目录下。
编译就可以通过了。
或者最直接的方法就是,不要签名了,找到XXX项目的AssemblyInfo.cs文件,注释掉下面一行:
[assembly: AssemblyKeyFileAttribute("..XXX.snk")]
编译就可以通过了。
下面简单的解释以下strong name:
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconStrong-NamedAssemblies.asp)
加密签名是计算机安全方面的名词,加密分为对称和非对称加密,这里用的是后者,
strong name是进行程序集版本控制和名称保护的,对一个程序集进行签名后就会得到一个strong name。strong name由以下几部分组成程序集的标识(即它的简单文本名称),版本号和区域性信息(如果提供的话),以及公钥和数字签名。strong name可以确保一个程序集名称的唯一性。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。
需要强调的是,是对程序集的加密和签名(包括名称,版本等信息)得到强名称,强名称是唯一的,所以程序集也是唯一的,程序集加密签名成strong name需要使用私钥,这个私钥由keyname和keyfile组成,其中KeyName 是指已经安装在计算机上的加密服务提供程序(CSP)中的密钥。KeyFile 是指包含密钥的文件(其实就是.snk文件)。KeyFile通过sn.exe生成。
相关文章推荐
- Net关于签名时加密失败错误的解决
- 关于签名时加密失败错误的解决
- 关于百度地图开发中230错误 APP Scode校验失败问题的解决办法
- 金蝶提示“访问加密服务器失败,错误号:-16”到底如何解决?
- 安装VS2005 SP1时失败(错误 1718。文件被数字签名策略拒绝)的解决办法!
- 关于MySQL数据库重装失败,出现问题,重装的时候出现错误1130的问题和解决办法。
- 关于dedecms近期频繁出现[错误警告:连接数据库失败..]错误的解决方法
- 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 关于 使用百度地图SDK 打包签名后出现的 app-key错误的解决
- 关于"通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败"的错误解决
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- 关于MSDTC - 与基础事务管理器的通信失败 错误解决的小备忘
- 微信小程序支付签名失败,错误的解决方法,小程序支付签名paySign开发demo
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!
- Windows10 远程桌面连接失败,报CredSSP加密oracle修正错误解决办法
- 安装VS2005 SP1时失败(错误 1718。文件被数字签名策略拒绝)的解决办法!
- 关于“检索COM类工厂中CLSID为{F812B147-0E26-4222-8EE4-9F753CD2B39C}的组建时失败,原因是出现以下错误:80040154”的解决方法
- 关于ASP程序运行出现ADODB.Stream 错误 800a0bbc 写入文件失败 的解决办法!