【问题标题】:Signing ASP.NET 5 Class Library Assemblies签署 ASP.NET 5 类库程序集
【发布时间】:2015-06-23 11:43:43
【问题描述】:

ASP.NET 5 类库项目的输出是一个 Nuget 包 (.nupkg),其中包含完整的 .NET 和 DNX Core 程序集。

我希望将 NuGet 包分发给第三方开发人员。新的 ASP.NET 5 类库项目没有对已编译程序集进行签名的选项。有没有其他方法可以做到这一点?

【问题讨论】:

  • 看看这个repository。我想这还没有准备好,但至少你可以了解如何做到这一点。

标签: c# asp.net .net asp.net-core asp.net-core-mvc


【解决方案1】:

如果您的目标是完整的 .Net Framework,您可以通过在 project.json 文件的编译选项中设置 "keyFile" : "c:\\keyfile.snk" 属性来使用强名称对程序集进行签名。但是请注意,Core Clr 不支持真正的强命名。相反,它支持仅使用公钥进行签名。如果你想走这条路,你会在编译选项中使用"strongName" : true。更多详情请参阅 github 上的this discussion

编辑

RC1 中的情况发生了变化。较大的更改/改进之一是使用 .snk 文件对程序集进行 OSS 签名的能力。您可以在my post on signing assemblies in ASP.NET 5 中找到所有详细信息。随着 dotnet 和 dnx(想想:ASP.NET Core 1)的合并,RC2 及更高版本中的事情将进一步发展。我认为最大的直接变化之一是您将不再能够在没有 .snk 的情况下对程序集进行 OSS 签名。

【讨论】:

  • 我可以同时使用吗?使用 Core CLR 进行完整 CLR 和公钥签名的正确签名?
  • 暂时没有。我为此提交了一个问题:github.com/aspnet/dnx/issues/2206
  • 所以事实证明你实际上可以同时使用两者。我认为 CoreClr 程序集不能是真正的强命名,但它们可以,所以它只是关于您用于运行编译器的运行时。使用 CoreClr,您只能使用 FullClr 伪造强名称程序集,您可以使用真正的强名称进行签名。
  • 好吧,我们可以单独使用keyFile 了吗?其次,如果您在解决方案的根目录中有一个共享的 .snk,您会将什么传递给 keyFile?我尝试了一些斜线,但出现错误。
  • 这适用于我的盒子"compilationOptions": { "keyFile": "../../../Key.snk"},。一件重要的事情 - 你需要使用 beta6 不稳定位。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
相关资源
最近更新 更多