Skip to content

Commit 9f8141b

Browse files
authored
[browser] Expect fingerprint on assemblies promoted from build (#120442)
1 parent bca43fc commit 9f8141b

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

src/tasks/Microsoft.NET.Sdk.WebAssembly.Pack.Tasks/ComputeWasmPublishAssets.cs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)