@@ -420,6 +420,16 @@ private void ProcessSymbolAssets(
420420 }
421421 }
422422
423+ private string GetItemSpecWithoutFingerprint ( ITaskItem asset )
424+ => FingerprintAssets ? asset . GetMetadata ( "OriginalItemSpec" ) : asset . ItemSpec ;
425+
426+ private static string GetNonFingerprintedAssetItemSpec ( ITaskItem asset )
427+ {
428+ var fileName = Path . GetFileName ( asset . GetMetadata ( "OriginalItemSpec" ) ) ;
429+ var assetToUpdateItemSpec = Path . Combine ( Path . GetDirectoryName ( asset . ItemSpec ) , fileName ) ;
430+ return assetToUpdateItemSpec ;
431+ }
432+
423433 private void ComputeUpdatedAssemblies (
424434 IDictionary < ( string , string assemblyName ) , ITaskItem > satelliteAssemblies ,
425435 List < ITaskItem > filesToRemove ,
@@ -440,14 +450,15 @@ private void ComputeUpdatedAssemblies(
440450 foreach ( var kvp in assemblyAssets )
441451 {
442452 var asset = kvp . Value ;
443- var fileName = Path . GetFileName ( asset . ItemSpec ) ;
453+ var fileName = Path . GetFileName ( GetItemSpecWithoutFingerprint ( asset ) ) ;
454+ var assetToUpdateItemSpec = FingerprintAssets ? GetNonFingerprintedAssetItemSpec ( asset ) : asset . ItemSpec ;
444455 if ( IsWebCilEnabled )
445456 fileName = Path . ChangeExtension ( fileName , ".dll" ) ;
446457
447458 if ( resolvedAssembliesToPublish . TryGetValue ( fileName , out var existing ) )
448459 {
449460 // We found the assembly, so it'll have to be updated.
450- assetsToUpdate . Add ( asset . ItemSpec , asset ) ;
461+ assetsToUpdate . Add ( assetToUpdateItemSpec , asset ) ;
451462 filesToRemove . Add ( existing ) ;
452463 if ( ! string . Equals ( asset . ItemSpec , existing . GetMetadata ( "FullPath" ) , StringComparison . Ordinal ) )
453464 {
@@ -465,11 +476,12 @@ private void ComputeUpdatedAssemblies(
465476 {
466477 var satelliteAssembly = kvp . Value ;
467478 var relatedAsset = satelliteAssembly . GetMetadata ( "RelatedAsset" ) ;
479+
468480 if ( assetsToUpdate . ContainsKey ( relatedAsset ) )
469481 {
470482 assetsToUpdate . Add ( satelliteAssembly . ItemSpec , satelliteAssembly ) ;
471483 var culture = satelliteAssembly . GetMetadata ( "AssetTraitValue" ) ;
472- var fileName = Path . GetFileName ( satelliteAssembly . ItemSpec ) ;
484+ var fileName = Path . GetFileName ( GetItemSpecWithoutFingerprint ( satelliteAssembly ) ) ;
473485 if ( IsWebCilEnabled )
474486 fileName = Path . ChangeExtension ( fileName , ".dll" ) ;
475487
@@ -517,7 +529,8 @@ private void ComputeUpdatedAssemblies(
517529 ApplyPublishProperties ( newAsemblyAsset ) ;
518530
519531 newAssets . Add ( newAsemblyAsset ) ;
520- updatedAssetsMap . Add ( asset . ItemSpec , newAsemblyAsset ) ;
532+ var assetToUpdateItemSpec = FingerprintAssets ? GetNonFingerprintedAssetItemSpec ( asset ) : asset . ItemSpec ;
533+ updatedAssetsMap . Add ( assetToUpdateItemSpec , newAsemblyAsset ) ;
521534 break ;
522535 default :
523536 // Satellite assembliess and compressed assets
0 commit comments