标签: assembly-signing

如何申报好友集会?

我的解决方案中有2个项目:

  1. 大会(基础图书馆)
  2. 测试组件(NUnit)

我在第一个项目中将测试程序集声明为朋友程序集:

[assembly: InternalsVisibleTo ("Company.Product.Tests")]
Run Code Online (Sandbox Code Playgroud)

一切都很好,直到我意识到我忘记设置解决方案来签署我的程序集.因此创建了一个snk文件并设置了visual studio项目来签署第一个程序集(Basic Library).现在当我编译第一个项目时,我收到以下错误:

朋友汇编参考'Company.Product.Tests'无效.强名称签名程序集必须在其InternalsVisibleTo声明中指定公钥.

我试图使用sn实用程序从我的snk文件中提取公钥,但它生成一个有线二进制文件,我不确定如何使用.我该如何解决这个问题?

c# assembly-signing visual-studio-2008

110
推荐指数
1
解决办法
3万
查看次数

签名时发生错误

我维护一个大型WPF应用程序,我从另一个开发人员继承.我使用ClickOnce发布它.突然,今天我收到一条错误消息:错误2无法发布,因为项目无法构建.1 1
错误3签名时出错:无法签署bin\Debug\app.publish\setup.exe.SignTool错误:未找到符合所有给定条件的证书.

我有一个名为SomeName.snk的文件,在项目设置,签名选项卡中引用.我不知道今天发生了什么导致了这个问题.我使用VS 2012.

wpf clickonce assembly-signing visual-studio-2012

57
推荐指数
6
解决办法
5万
查看次数

我如何签署一个已经内置到dll特定flute.dll的程序集

我想签署DLL的原因是因为我想将它添加到全局程序集缓存中.程序集是一个用Java编写并移植到J#的css解析引擎.我使用VS2008所以我不能制作J#项目.它没有分配给它的强名称密钥,我现在不知道如何构建它.

有人有主意吗?

asp.net dll assembly-signing visual-studio-2008

25
推荐指数
2
解决办法
2万
查看次数

签署.NET程序集

数字签名与强命名程序集有什么关系.我读到一个强名称的程序集有公钥和数字签名.

来自维基百科文章"Assembly(CLI)":

"签署程序集涉及对程序集的重要部分进行散列,然后使用私钥加密散列.签名的散列与公钥一起存储在程序集中.公钥将解密签名的散列.当CLR加载一个强命名的程序集,它将从程序集生成一个哈希值,然后将其与解密的哈希值进行比较.如果比较成功,则表示文件中的公钥(以及公钥标记)与私钥相关联用于签署程序集.这意味着程序集中的公钥是程序集发布者的公钥,因此欺骗攻击被挫败."

以上信息准确吗?它没有任何数字签名的参考.我找不到MSDN页面,解释如何签署程序集,如何验证签名以及如何消除黑客攻击的可能性.我想更多地了解这些.

.net c# assembly-signing

24
推荐指数
1
解决办法
6340
查看次数

在VS 2010中有一种简单的方法来签署C++ CLI程序集吗?

现在我正在设置Linker/Advanced/KeyFile选项.

我收到"mt.exe:一般警告810100b3:是一个强名称签名的程序集,并且嵌入清单会使签名无效.您需要重新签名此文件才能使其成为有效的程序集." .

从网上阅读,听起来我必须设置延迟签名选项,下载SDK,并运行sn.exe作为后期构建事件.当然在VS2010中必须有一种更简单的方法来执行这种常见操作?

.net c++-cli visual-studio-2010 assembly-signing

21
推荐指数
2
解决办法
6450
查看次数

如何以编程方式验证程序集是否使用特定证书进行签名?

我的方案是我们有一个程序(exe),如果在特定文件夹中找到,将启动其他程序.我想确保它只启动使用我们的公司证书(Verisign批准等)签署的计划.从本质上讲,它只会以与自身相同的证书启动程序.我不想发送证书本身.

我一直在搜索网络和系统名称空间,并没有找到一个明确的例子,从文件中读取证书数据并验证它,并可以检查另一个文件.我发现的最接近的是Signtool,并且在单独的exe中进行此验证有点少.我知道强命名的东西不会有帮助,因为数字签名的文件是不同的,如此处有用的解释(http://blog.codingoutloud.com/2010/03/13/three-ways-to-tell-whether-an-assembly- dl-is-strong-named /)SO中的其他一些示例显示了原始数据的加密和验证,但没有以某种方式将它打包在一起的程序集.

任何想法或建议?

.net c# digital-certificate assembly-signing

19
推荐指数
1
解决办法
2万
查看次数

什么时候应该使用密码保护强名称密钥文件?

在visual studio项目设置中,您可以选择强名称密钥文件来签署程序集.创建新的时,您可以选择使用密码保护它.你应该什么时候这样做?什么时候不应该?

我认为,如果项目是在Codeplex或类似地方托管的开源项目,用密码保护它可能不是那么聪明.还是应该保护它?如果密钥文件受到保护,人们是否无法下载源代码并进行编译?或者,这是如何工作的?

assembly-signing visual-studio

17
推荐指数
1
解决办法
3383
查看次数

与多个项目和开发人员签署程序集的最佳实践

我正在寻找在30多个开发人员,20多个解决方案和60多个项目的组织中应用签名程序集的建议和最佳实践.我们正在使用Visual Studio Team System 2008和TFS.

虽然创建密钥并签署程序集是一个非常简单直接的过程,但我担心如何以最佳方式管理它.

到目前为止我的想法:

  • 每个解决方案(通常包含3到20个项目)将在解决方案根文件夹中放置一个.pfx密钥文件.
  • 每个解决方案都有一个唯一的密钥强密码.

我们会遇到这种方法的任何问题吗?

其他一些想法:

  • 对解决方案中的所有项目使用相同的密钥文件.这会让我们更轻松吗?这是个坏主意吗?它甚至可能吗?
  • 每个项目都应该有自己独特的密钥吗?为什么,为什么不呢?

欢迎任何意见,好/坏的经验和建议.:)

.net assembly-signing visual-studio

16
推荐指数
2
解决办法
6641
查看次数

我是否需要为开源项目保护我的强名称密钥文件?

我正在创建一个入门工具包,它将已编译的程序集从开源项目安装到GAC中,以便更容易地引用模板中的程序集.由于他们将加入GAC,因此需要签署.

我是否需要密码保护并保护密钥文件,或者是否可以将其保持打开并将文件包含在源代码管理中?

c# open-source gac assembly-signing

14
推荐指数
1
解决办法
2010
查看次数

签署开源项目的二进制文件

我试图在我当前的项目中使用ServiceStack,但发现发布的二进制文件名称不强,所以我无法使用它开箱即用.当询问GitHub"为什么"时,我得到了以下答案:

它具有病毒毒性,阻碍了绑定,升级,开发,部署等.

mythz非常简洁,所以我不想再打扰他,并在这里问.我使用了许多开源.NET项目,如AutoMapper,NUnit,Moq,log4net,Ninject等,他们的版本都是强大的命名.在这里找到类似的问题,但这对我没有帮助.这是OSS的正常做法吗?为什么不发布签名和未签名的二进制文件?

.net open-source code-signing assembly-signing code-signing-certificate

14
推荐指数
2
解决办法
1635
查看次数