11using System ;
22using System . Collections . Concurrent ;
33using System . Collections . Generic ;
4+ using System . Diagnostics . CodeAnalysis ;
45using System . IO ;
56using System . IO . Compression ;
67using System . Linq ;
@@ -189,18 +190,10 @@ protected virtual void ReadBundle(ZipArchive zip)
189190 {
190191 ZipArchiveEntry ? entry ;
191192 if ( ( entry = zip . GetEntry ( ".manifest.ec" ) ) != null )
192- #if NET6_0_OR_GREATER
193193 Manifest = JsonSerializer . Deserialize ( entry . Open ( ) , typeof ( Manifest ) , SourceGenerationManifestContext . Default ) as Manifest ?? new Manifest ( ) ;
194- #else
195- Manifest = JsonSerializer . Deserialize < Manifest > ( entry . Open ( ) , SerializerOptions ) ?? new Manifest ( ) ; ;
196- #endif
197194
198195 if ( ( entry = zip . GetEntry ( ".signatures.ec" ) ) != null )
199- #if NET6_0_OR_GREATER
200196 Signatures = JsonSerializer . Deserialize ( entry . Open ( ) , typeof ( Signatures ) , SourceGenerationSignaturesContext . Default ) as Signatures ?? new Signatures ( ) ;
201- #else
202- Signatures = JsonSerializer . Deserialize < Signatures > ( entry . Open ( ) , SerializerOptions ) ?? new Signatures ( ) ;
203- #endif
204197 }
205198
206199 /// <summary>
@@ -247,12 +240,7 @@ public void Sign(X509Certificate2 certificate, RSA privateKey)
247240 {
248241 EnsureWritable ( ) ;
249242
250- #if NET6_0_OR_GREATER
251243 var manifestData = Export ( Manifest , SourceGenerationManifestContext . Default ) ;
252- #else
253- var manifestData = Export ( Manifest ) ;
254- #endif
255-
256244 var signature = privateKey . SignData ( manifestData , HashAlgorithmName . SHA512 , RSASignaturePadding . Pkcs1 ) ;
257245 var cert = Convert . ToBase64String ( certificate . Export ( X509ContentType . Cert ) ) ;
258246 var name = certificate . GetCertHashString ( ) ;
@@ -303,11 +291,7 @@ public bool VerifySignature(string certificateHash)
303291
304292 if ( pubKey == null ) return false ;
305293
306- #if NET6_0_OR_GREATER
307294 var manifestData = Export ( Manifest , SourceGenerationManifestContext . Default ) ;
308- #else
309- var manifestData = Export ( Manifest ) ;
310- #endif
311295
312296 return pubKey . VerifyData ( manifestData , Signatures . Entries [ certificateHash ] , HashAlgorithmName . SHA512 , RSASignaturePadding . Pkcs1 ) ;
313297 }
@@ -422,7 +406,6 @@ public byte[] GetFileBytes(string entryName)
422406 }
423407 }
424408
425- #if NET6_0_OR_GREATER
426409 /// <summary>
427410 /// Exports the specified structured data to a byte array.
428411 /// </summary>
@@ -434,18 +417,23 @@ protected byte[] Export(object structuredData, JsonSerializerContext jsonSeriali
434417 var data = JsonSerializer . Serialize ( structuredData , structuredData . GetType ( ) , jsonSerializerContext ) ;
435418 return Encoding . UTF8 . GetBytes ( data ) ;
436419 }
437- #else
420+
438421 /// <summary>
439422 /// Exports the specified structured data to a byte array.
440423 /// </summary>
441424 /// <param name="structuredData">The structured data to export.</param>
442425 /// <returns>A byte array containing the exported data.</returns>
426+ #if NET6_0_OR_GREATER
427+ [ RequiresUnreferencedCode ( "This method is not compatible with AOT." ) ]
428+ #endif
429+ #if NET8_0_OR_GREATER
430+ [ RequiresDynamicCode ( "This method is not compatible with AOT." ) ]
431+ #endif
443432 protected byte [ ] Export ( object structuredData )
444433 {
445434 var data = JsonSerializer . Serialize ( structuredData , SerializerOptions ) ;
446435 return Encoding . UTF8 . GetBytes ( data ) ;
447436 }
448- #endif
449437
450438 /// <summary>
451439 /// Writes changes to the bundle file.
@@ -458,20 +446,10 @@ public void Update()
458446 {
459447 OnUpdating ? . Invoke ( zip ) ;
460448
461- #if NET6_0_OR_GREATER
462449 var manifestData = Export ( Manifest , SourceGenerationManifestContext . Default ) ;
463- #else
464- var manifestData = Export ( Manifest ) ;
465- #endif
466-
467450 WriteEntry ( zip , ".manifest.ec" , manifestData ) ;
468451
469- #if NET6_0_OR_GREATER
470452 var signatureData = Export ( Signatures , SourceGenerationSignaturesContext . Default ) ;
471- #else
472- var signatureData = Export ( Signatures ) ;
473- #endif
474-
475453 WriteEntry ( zip , ".signatures.ec" , signatureData ) ;
476454
477455 foreach ( var newFile in newEmbeddedFiles )
0 commit comments