Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Kompilacja netstandard2.0 pakietu System.Security.Cryptography.Pkcs NuGet w wersji 9.0.0 do 9.0.2 zawiera interfejsy API, które nie są obecne w programie .NET Framework. Wywołanie tych interfejsów API z biblioteki .NET Standard, która działa na .NET Framework, spowoduje wyrzucenie MissingMemberException. Ci członkowie zostali błędnie włączeni i zostali usunięci w wersji 9.0.3 pakietu.
Wprowadzona wersja
.NET 9
Poprzednie zachowanie
Podczas odwoływania się do wersji 9.0.0 System.Security.Cryptography.Pkcs w projekcie, którego celem jest netstandard2.0, kompilacja zakończy się pomyślnie przy odwołaniu się do właściwości CmsSigner.PrivateKey. Jeśli jednak biblioteka została uruchomiona na platformie .NET Framework, uzyskanie dostępu do właściwości spowoduje wyzwolenie MissingMemberException.
Nowe zachowanie
Uzyskanie dostępu do dowolnego usuniętego elementu członkowskiego powoduje teraz niepowodzenie kompilacji, a nie niepowodzenie środowiska uruchomieniowego.
Typ zmiany powodującej niezgodność
Jest to zmiana niezgodna ze źródłem .
Przyczyna zmiany
Członkowie zostali przypadkowo dołączeni z powodu zmiany sposobu tworzenia pakietu NuGet. Ponieważ ci członkowie nie mogą pracować w programie .NET Framework, nigdy nie powinni być wyświetlani jako dostępne dla platformy .NET Standard 2.0.
Zalecana akcja
Jeśli te dodatkowe składniki są potrzebne, skompiluj je specjalnie dla TFM, który je zawiera, na przykład net8.0.
Interfejsy API, których dotyczy problem
- CmsSigner
- System.Security.Cryptography.Pkcs.CmsSigner.PrivateKey
- System.Security.Cryptography.Pkcs.CmsSigner.SignaturePadding
- System.Security.Cryptography.Pkcs.ContentInfo.GetContentType(ReadOnlySpan<Byte>)
- System.Security.Cryptography.Pkcs.EnvelopedCms.Decode(ReadOnlySpan<Byte>)
- System.Security.Cryptography.Pkcs.EnvelopedCms.Decrypt(RecipientInfo, AsymmetricAlgorithm)
- System.Security.Cryptography.Pkcs.SignedCms.AddCertificate(X509Certificate2)
- System.Security.Cryptography.Pkcs.SignedCms.Decode(ReadOnlySpan<Byte>)
- System.Security.Cryptography.Pkcs.SignedCms.RemoveCertificate(X509Certificate2)
- System.Security.Cryptography.Pkcs.SignerInfo.AddUnsignedAttribute(AsnEncodedData)
- System.Security.Cryptography.Pkcs.SignerInfo.SignatureAlgorithm
- System.Security.Cryptography.Pkcs.SignerInfo.GetSignature()
- System.Security.Cryptography.Pkcs.SignerInfo.RemoveUnsignedAttribute(AsnEncodedData)
- System.Security.Cryptography.Pkcs.SubjectIdentifier.MatchesCertificate(X509Certificate2)