【问题标题】:How to install System.Security.Cryptography.Pkcs for .Net Framework 4.5如何为 .Net Framework 4.5 安装 System.Security.Cryptography.Pkcs
【发布时间】:2017-12-04 12:27:23
【问题描述】:

我需要使用 System.Security.Cryptography.Pkcs 因为我找到了以下命令来安装 Nuget 包。 安装包 System.Security.Cryptography.Pkcs -Version 4.4.0 with 4.5

当我从 PM 执行此操作时。它显示错误为 无法安装软件包“System.Security.Cryptography.Pkcs 4.4.0”。您正在尝试将此包安装到以“.NETFramework,Version=v4.5”为目标的项目中,但该包不包含任何与该框架兼容的程序集引用或内容文件。如需更多信息,请联系包作者。

【问题讨论】:

  • 消息本身已经足够清晰了。该 NuGet 包在 .NET Framework 4.5 上不受支持,但在 4.6 及更高版本上。
  • 是的,但我的依赖项目仅在 4.5 上严格运行,因此我无法更改项目框架

标签: c# .net cryptography nuget nuget-package


【解决方案1】:

如果您使用的是 .NET Framework 4.5,则不需要 System.Security.Cryptography.Pkcs 包,因为它仅包含 .NET Framework 中已有的类型,位于 System.Security.dll

这是该库的 net46 实现的全部内容,根据 ildasm:

.class extern forwarder System.Security.Cryptography.CryptographicAttributeObject
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.CryptographicAttributeObjectCollection
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.CryptographicAttributeObjectEnumerator
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.AlgorithmIdentifier
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.CmsRecipient
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.CmsRecipientCollection
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.CmsRecipientEnumerator
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.ContentInfo
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.EnvelopedCms
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.KeyAgreeRecipientInfo
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.KeyTransRecipientInfo
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.Pkcs9AttributeObject
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.Pkcs9ContentType
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.Pkcs9DocumentDescription
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.Pkcs9DocumentName
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.Pkcs9MessageDigest
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.Pkcs9SigningTime
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.PublicKeyInfo
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.RecipientInfo
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.RecipientInfoCollection
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.RecipientInfoEnumerator
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.RecipientInfoType
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.SubjectIdentifier
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.SubjectIdentifierOrKey
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.SubjectIdentifierOrKeyType
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Pkcs.SubjectIdentifierType
{
  .assembly extern System.Security
}
.class extern forwarder System.Security.Cryptography.Xml.X509IssuerSerial
{
  .assembly extern System.Security
}

如果您需要使用 .NET Standard 与某些东西进行互操作,则需要至少升级到 .NET Framework 4.6,因为在 .NET Standard 1.3 之前没有定义任何加密类型(与 .NET Framework 4.6 一致)

【讨论】:

  • 感谢更新。分开两个项目。一个是 4.5,另一个是 4.6.2,因为服务模型桥已经存在于这两者之间。再次感谢
猜你喜欢
  • 2013-04-01
  • 2013-02-26
  • 1970-01-01
  • 2012-12-06
  • 2022-12-28
  • 2013-01-12
  • 1970-01-01
  • 1970-01-01
  • 2017-12-15
相关资源
最近更新 更多