@@ -436,18 +436,7 @@ private async Task BuildInternal()
436436 // If we don't have any dependencies error, generate the package
437437 if ( ! hasDependencyErrors )
438438 {
439- bool packageAvailable = await ConvertNuGetToUnityPackageIfDoesNotExist ( packageIdentity , npmPackageInfo , npmVersion , packageMeta , forceUpdate , packageEntry ) ;
440-
441- if ( ! packageAvailable )
442- {
443- npmPackage . Versions . Remove ( npmVersion . Version ) ;
444-
445- if ( npmPackageInfo . Versions . TryGetValue ( npmCurrentVersion , out var tagValue ) && tagValue == "latest" )
446- npmPackageInfo . Versions . Remove ( npmCurrentVersion ) ;
447-
448- continue ;
449- }
450-
439+ bool packageConverted = await ConvertNuGetToUnityPackageIfDoesNotExist ( packageIdentity , npmPackageInfo , npmVersion , packageMeta , forceUpdate , packageEntry ) ;
451440 npmPackage . Time [ npmCurrentVersion ] = packageMeta . Published ? . UtcDateTime ?? GetUnityPackageFileInfo ( packageIdentity , npmVersion ) . CreationTimeUtc ;
452441
453442 // Copy repository info if necessary
@@ -459,7 +448,7 @@ private async Task BuildInternal()
459448 // Update the cache entry
460449 await WritePackageCacheEntry ( packageId , cacheEntry ) ;
461450
462- if ( packageAvailable && IsRunningOnAzure )
451+ if ( packageConverted && IsRunningOnAzure )
463452 {
464453 string localPackagePath = Path . Combine ( globalPackagesFolder , packageIdentity . Id . ToLowerInvariant ( ) , packageIdentity . Version . ToString ( ) ) ;
465454
@@ -514,18 +503,22 @@ RegistryEntry packageEntry
514503
515504 if ( ! IsUnityPackageValid ( identity , npmPackageVersion ) || ! IsUnityPackageSha1Valid ( identity , npmPackageVersion ) )
516505 {
517- return await ConvertNuGetPackageToUnity ( identity , npmPackageInfo , npmPackageVersion , packageMeta , packageEntry ) ;
518- }
506+ await ConvertNuGetPackageToUnity ( identity , npmPackageInfo , npmPackageVersion , packageMeta , packageEntry ) ;
519507
520- npmPackageVersion . Distribution . Shasum = await ReadUnityPackageSha1 ( identity , npmPackageVersion ) ;
508+ return true ;
509+ }
510+ else
511+ {
512+ npmPackageVersion . Distribution . Shasum = await ReadUnityPackageSha1 ( identity , npmPackageVersion ) ;
521513
522- return true ;
514+ return false ;
515+ }
523516 }
524517
525518 /// <summary>
526519 /// Converts a NuGet package to a Unity package.
527520 /// </summary>
528- private async Task < bool > ConvertNuGetPackageToUnity
521+ private async Task ConvertNuGetPackageToUnity
529522 (
530523 PackageIdentity identity ,
531524 NpmPackageInfo npmPackageInfo ,
@@ -563,38 +556,35 @@ RegistryEntry packageEntry
563556 {
564557 using var memStream = new MemoryStream ( ) ;
565558
566- // Select the framework version that is the closest or equal to the latest configured framework version
567- var versions = await packageReader . GetLibItemsAsync ( CancellationToken . None ) ;
568-
569- var closestVersions = NuGetHelper . GetClosestFrameworkSpecificGroups ( versions , _targetFrameworks ) ;
570-
571- var collectedItems = new Dictionary < FrameworkSpecificGroup , HashSet < RegistryTargetFramework > > ( ) ;
572-
573- foreach ( var ( item , targetFramework ) in closestVersions )
574- {
575- if ( ! collectedItems . TryGetValue ( item , out var frameworksPerGroup ) )
576- {
577- frameworksPerGroup = new HashSet < RegistryTargetFramework > ( ) ;
578- collectedItems . Add ( item , frameworksPerGroup ) ;
579- }
580- frameworksPerGroup . Add ( targetFramework ) ;
581- }
582-
583- if ( ! packageEntry . Analyzer && collectedItems . Count == 0 )
584- {
585- LogWarning (
586- $ "Skipping package `{ identity } ` because it does not contain a compatible .NET assembly " +
587- $ "for { string . Join ( "," , _targetFrameworks . Select ( x => x . Name ) ) } .") ;
588- return false ;
589- }
590-
591559 using ( var outStream = File . Create ( unityPackageFilePath ) )
592560 using ( var gzoStream = new GZipOutputStream ( outStream )
593561 {
594562 ModifiedTime = packageMeta . Published ? . UtcDateTime
595563 } )
596564 using ( var tarArchive = new TarOutputStream ( gzoStream , Encoding . UTF8 ) )
597565 {
566+ // Select the framework version that is the closest or equal to the latest configured framework version
567+ var versions = await packageReader . GetLibItemsAsync ( CancellationToken . None ) ;
568+
569+ var closestVersions = NuGetHelper . GetClosestFrameworkSpecificGroups ( versions , _targetFrameworks ) ;
570+
571+ var collectedItems = new Dictionary < FrameworkSpecificGroup , HashSet < RegistryTargetFramework > > ( ) ;
572+
573+ foreach ( var ( item , targetFramework ) in closestVersions )
574+ {
575+ if ( ! collectedItems . TryGetValue ( item , out var frameworksPerGroup ) )
576+ {
577+ frameworksPerGroup = new HashSet < RegistryTargetFramework > ( ) ;
578+ collectedItems . Add ( item , frameworksPerGroup ) ;
579+ }
580+ frameworksPerGroup . Add ( targetFramework ) ;
581+ }
582+
583+ if ( ! packageEntry . Analyzer && collectedItems . Count == 0 )
584+ {
585+ throw new InvalidOperationException ( $ "The package does not contain a compatible .NET assembly { string . Join ( "," , _targetFrameworks . Select ( x => x . Name ) ) } ") ;
586+ }
587+
598588 var isPackageNetStandard21Assembly = DotNetHelper . IsNetStandard21Assembly ( identity . Id ) ;
599589 var hasMultiNetStandard = collectedItems . Count > 1 ;
600590 var hasOnlyNetStandard21 = collectedItems . Count == 1 && collectedItems . Values . First ( ) . All ( x => x . Name == "netstandard2.1" ) ;
@@ -838,10 +828,7 @@ RegistryEntry packageEntry
838828
839829 if ( ! packageEntry . Analyzer && collectedItems . Count == 0 )
840830 {
841- LogWarning (
842- $ "Skipping package `{ identity } ` because it does not contain a compatible .NET assembly " +
843- $ "for { string . Join ( "," , _targetFrameworks . Select ( x => x . Name ) ) } .") ;
844- return false ;
831+ throw new InvalidOperationException ( $ "The package does not contain a compatible .NET assembly { string . Join ( "," , _targetFrameworks . Select ( x => x . Name ) ) } ") ;
845832 }
846833
847834 // Write the native libraries
@@ -912,7 +899,6 @@ RegistryEntry packageEntry
912899 // Try to fetch the license from an URL
913900 using ( var httpClient = new HttpClient ( ) )
914901 {
915- httpClient . Timeout = TimeSpan . FromSeconds ( 15 ) ;
916902 licenseUrlText = await httpClient . GetStringAsync ( licenseUrl ) ;
917903 }
918904
@@ -977,10 +963,7 @@ RegistryEntry packageEntry
977963 }
978964
979965 LogWarning ( $ "Error while processing package `{ identity } `. Reason: { ex } ") ;
980- return false ;
981966 }
982-
983- return true ;
984967 }
985968
986969 private static Guid GetStableGuid ( PackageIdentity identity , string name )
0 commit comments