121得票3回答
如何声明友元程序集?

我的解决方案中有两个项目: 程序集 (基础库) 测试程序集 (NUnit) 我已在第一个项目中将测试程序集声明为友元程序集:[assembly: InternalsVisibleTo ("Company.Product.Tests")] 一切运作得很好,直到我意识到我忘记设置解决方案来...

85得票12回答
一个错误出现在签名时。

我维护一个大型的WPF应用程序,这是我从另一位开发人员那里接手的。我使用ClickOnce进行发布。但是,今天突然出现了一个错误消息: Error 2 无法发布,因为一个项目构建失败。 1 1 Error 3 签名时出现错误:未能签署bin\Debug\app.publi...

28得票5回答
如何给已经编译成dll的程序集flute.dll签名

我想签名dll的原因是我想将它添加到全局程序集缓存(Global Assembly Cache)中。这个程序集是一个用Java编写并移植到J#语言的CSS解析引擎。由于我使用的是VS2008,无法创建J#项目。而且,该程序集没有强名称密钥。现在已经构建完成,我不知道如何为它指定强名称密钥。 ...

27得票3回答
数字签名与强命名程序集有什么关系?

数字签名与强命名程序集有什么关系?我读到说强命名程序集带有公钥和数字签名。 根据维基百科上的《程序集(CLI)》文章: “对程序集进行签名涉及对程序集的重要部分进行哈希运算,然后用私钥对哈希值进行加密。签名后的哈希值与公钥一起存储在程序集中。公钥将解密签名后的哈希值。当CLR加载一个强命名...

21得票4回答
如何以编程方式验证程序集是否使用特定证书签名?

我的情景是,我们有一个程序(exe),如果在特定文件夹中发现其他程序,它将启动这些程序。我希望确保它只启动使用我们公司证书签名的程序(如Verisign批准等)。因此,它只会启动与自己有相同证书的程序。但我不想发布证书本身。 我一直在搜索网络和系统名称空间,并没有找到一个清晰的示例,可以从文...

21得票6回答
在VS 2010中,是否有一种简单的方法来签署C++ CLI程序集?

我现在正在设置链接器/高级/KeyFile选项。 我收到了“mt.exe: 一般警告810100b3:这是一个强名称签名程序集,嵌入清单会使签名无效。你需要重新签署这个文件使它成为有效的程序集。” 的提示信息。 从网上阅读的资料看来,我必须设置延迟签名选项、下载SDK,并在后期构建事件中运...

19得票1回答
何时应该使用密码保护一个强名称密钥文件?

在Visual Studio项目设置中,您可以选择一个强名称密钥文件来签名程序集。创建新的密钥文件时,您可以选择用密码来保护它。什么情况下应该这样做?什么情况下不应该? 我认为,如果项目是在Codeplex或类似平台上托管的开源项目,则使用密码保护可能不是一种明智的选择。那么,是否仍应该加密...

17得票3回答
多项目和多开发人员签署程序集的最佳实践

我正在寻求应用已签名程序集的建议和最佳实践,我们组织有30多名开发人员、20多个解决方案和60多个项目。我们使用的是Visual Studio Team System 2008和TFS。 虽然创建密钥和签署程序集是非常简单和直接的过程,但我担心如何以最佳方式管理它们。 我的想法如下: ...

15得票1回答
Signtool和sn或al之间在程序集签名方面有什么区别?

我看到了像SN这样的工具,它可以生成用于签名程序集的私钥/公钥对。同时,我们也可以使用AL工具为程序集指定强名称。 此外,我们还有Sign工具,用于签署程序集(可能仅适用于与证书一起使用?) 两者之间的确切区别是什么?当使用证书时,是否必须使用Sign工具,并且是否可以在SN中实现?还是它...

15得票3回答
只在发布构建期间使用强名称对程序集进行签名。

场景如下:我正在使用TeamCity构建我的解决方案,我不是以管理员身份运行构建帐户;因此我遇到了强名称密钥的问题。 我知道有一些解决方案,比如以管理员身份运行构建并在正确的容器中注册证书。 是否有任何方法可以仅在发布构建期间而不是在调试构建期间仅为解决方案文件签名程序集。或者是否有类似的...