Skip to content

Commit c53a652

Browse files
authored
[release/9.0.3xx] [StaticWebAssets] Add the cache files to the list of written files so they get deleted during clean (#48984)
2 parents 8375919 + 7f96aa1 commit c53a652

8 files changed

+1453
-6
lines changed

src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.Compression.targets

+2-1
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ Copyright (c) .NET Foundation. All rights reserved.
221221
<Target Name="ResolveBuildCompressedStaticWebAssets" DependsOnTargets="$(ResolveBuildCompressedStaticWebAssetsDependsOn)">
222222

223223
<PropertyGroup>
224-
<_ResolveBuildCompressedStaticWebAssetsCachePath>$(_StaticWebAssetsManifestBase)rbcswa.dswa.cache.json</_ResolveBuildCompressedStaticWebAssetsCachePath>
224+
<_ResolveBuildCompressedStaticWebAssetsCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rbcswa.dswa.cache.json</_ResolveBuildCompressedStaticWebAssetsCachePath>
225225
</PropertyGroup>
226226

227227
<DefineStaticWebAssets
@@ -242,6 +242,7 @@ Copyright (c) .NET Foundation. All rights reserved.
242242
<StaticWebAsset Include="@(_CompressionBuildStaticWebAsset)" />
243243
<StaticWebAssetEndpoint Include="@(_CompressionBuildStaticWebAssetEndpoint)" />
244244
<_CompressionCurrentProjectBuildAssets Include="@(StaticWebAsset)" />
245+
<FileWrites Include="@(_ResolveBuildCompressedStaticWebAssetsCachePath)" />
245246
</ItemGroup>
246247

247248
<ApplyCompressionNegotiation

src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.JSModules.targets

+7-3
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Copyright (c) .NET Foundation. All rights reserved.
100100
-->
101101

102102
<PropertyGroup>
103-
<_ResolveJsInitializerModuleStaticWebAssetsCachePath>$(_StaticWebAssetsManifestBase)rjimswa.dswa.cache.json</_ResolveJsInitializerModuleStaticWebAssetsCachePath>
103+
<_ResolveJsInitializerModuleStaticWebAssetsCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rjimswa.dswa.cache.json</_ResolveJsInitializerModuleStaticWebAssetsCachePath>
104104
</PropertyGroup>
105105

106106
<DefineStaticWebAssets Condition="@(_JSModuleCandidates) != ''"
@@ -165,6 +165,7 @@ Copyright (c) .NET Foundation. All rights reserved.
165165
<StaticWebAsset Include="@(_JSModuleStaticWebAsset)" />
166166
<StaticWebAssetEndpoint Remove="@(_FilteredJSModuleStaticWebAssetEndpointWithProperty)" />
167167
<StaticWebAssetEndpoint Include="@(_FilteredJSModuleStaticWebAssetEndpointWithProperty)" />
168+
<FileWrites Include="$(_ResolveJsInitializerModuleStaticWebAssetsCachePath)" />
168169
</ItemGroup>
169170

170171
</Target>
@@ -411,10 +412,10 @@ Copyright (c) .NET Foundation. All rights reserved.
411412
</ItemGroup>
412413

413414
<PropertyGroup>
414-
<_ResolveJSModuleStaticWebAssetsRazorCachePath>$(_StaticWebAssetsManifestBase)rjsmrazor.dswa.cache.json</_ResolveJSModuleStaticWebAssetsRazorCachePath>
415+
<_ResolveJSModuleStaticWebAssetsRazorCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rjsmrazor.dswa.cache.json</_ResolveJSModuleStaticWebAssetsRazorCachePath>
415416
</PropertyGroup>
416417
<PropertyGroup>
417-
<_ResolveJSModuleStaticWebAssetsCshtmlCachePath>$(_StaticWebAssetsManifestBase)rjsmcshtml.dswa.cache.json</_ResolveJSModuleStaticWebAssetsCshtmlCachePath>
418+
<_ResolveJSModuleStaticWebAssetsCshtmlCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rjsmcshtml.dswa.cache.json</_ResolveJSModuleStaticWebAssetsCshtmlCachePath>
418419
</PropertyGroup>
419420

420421
<!-- Find JS module files -->
@@ -487,6 +488,9 @@ Copyright (c) .NET Foundation. All rights reserved.
487488
<!-- Remove the items from their original groups since they've now become a StaticWebAsset -->
488489
<Content Remove="@(_JsFileModuleStaticWebAsset->'%(OriginalItemSpec)')" />
489490
<None Remove="@(_JsFileModuleStaticWebAsset->'%(OriginalItemSpec)')" />
491+
492+
<FileWrites Include="$(_ResolveJSModuleStaticWebAssetsRazorCachePath)" />
493+
<FileWrites Include="$(_ResolveJSModuleStaticWebAssetsCshtmlCachePath)" />
490494
</ItemGroup>
491495

492496
</Target>

src/StaticWebAssetsSdk/Targets/Microsoft.NET.Sdk.StaticWebAssets.targets

+4-1
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,7 @@ Copyright (c) .NET Foundation. All rights reserved.
433433
<StaticWebAssetFingerprintingEnabled Condition="'$(StaticWebAssetFingerprintingEnabled)' == ''">true</StaticWebAssetFingerprintingEnabled>
434434
<StaticWebAssetMergeTarget Condition="'$(TargetFrameworks)' != '' and '$(TargetPlatformIdentifier)' == 'browser'">Browser</StaticWebAssetMergeTarget>
435435
<StaticWebAssetMergeTarget Condition="'$(TargetFrameworks)' != '' and '$(TargetPlatformIdentifier)' == ''">Server</StaticWebAssetMergeTarget>
436+
<StaticWebAssetsCacheDefineStaticWebAssetsEnabled Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == ''">true</StaticWebAssetsCacheDefineStaticWebAssetsEnabled>
436437

437438
<!-- Manifest paths -->
438439
<_StaticWebAssetsManifestBase Condition="'$(_StaticWebAssetsManifestBase)' == ''">$(IntermediateOutputPath)</_StaticWebAssetsManifestBase>
@@ -672,7 +673,7 @@ Copyright (c) .NET Foundation. All rights reserved.
672673
DependsOnTargets="ResolveStaticWebAssetsConfiguration;UpdateExistingPackageStaticWebAssets">
673674

674675
<PropertyGroup>
675-
<_ResolveProjectStaticWebAssetsCachePath>$(_StaticWebAssetsManifestBase)rpswa.dswa.cache.json</_ResolveProjectStaticWebAssetsCachePath>
676+
<_ResolveProjectStaticWebAssetsCachePath Condition="'$(StaticWebAssetsCacheDefineStaticWebAssetsEnabled)' == 'true'">$(_StaticWebAssetsManifestBase)rpswa.dswa.cache.json</_ResolveProjectStaticWebAssetsCachePath>
676677
</PropertyGroup>
677678

678679
<DefineStaticWebAssets
@@ -707,6 +708,8 @@ Copyright (c) .NET Foundation. All rights reserved.
707708
</StaticWebAssetDiscoveryPattern>
708709

709710
<Content Remove="@(StaticWebAsset)" />
711+
712+
<FileWrites Include="$(_ResolveProjectStaticWebAssetsCachePath)" />
710713
</ItemGroup>
711714

712715
</Target>

src/StaticWebAssetsSdk/Tasks/DefineStaticWebAssets.Cache.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ internal static DefineStaticWebAssetsCache ReadOrCreateCache(TaskLoggingHelper l
113113

114114
internal void WriteCacheManifest()
115115
{
116-
if (_manifestPath != null)
116+
if (_manifestPath != null && !_cacheUpToDate && InputHashes.Count > 0)
117117
{
118118
using var manifestFile = File.OpenWrite(_manifestPath);
119119
manifestFile.SetLength(0);
@@ -165,6 +165,8 @@ private void TotalUpdate(byte[] propertiesHash, byte[] fingerprintPatternsHash,
165165
GlobalPropertiesHash = propertiesHash;
166166
FingerprintPatternsHash = fingerprintPatternsHash;
167167
PropertyOverridesHash = propertyOverridesHash;
168+
CachedAssets.Clear();
169+
CachedCopyCandidates.Clear();
168170
InputHashes = [.. inputsByHash.Keys];
169171
_inputByHash = inputsByHash;
170172
}

test/Microsoft.NET.Sdk.Razor.Tests/StaticWebAssets/DiscoverStaticWebAssetsTest.cs

+2
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,8 @@ public void DefineStaticWebAssetsCache_Recomputes_All_WhenPropertiesChange(Updat
601601

602602
Assert.False(cache.IsUpToDate());
603603
Assert.Same(inputHashes, cache.OutOfDateInputs());
604+
Assert.Empty(cache.CachedAssets);
605+
Assert.Empty(cache.CachedCopyCandidates);
604606
}
605607

606608
[Fact]
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
"${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]!.bundle.scp.css.gz",
3+
"${ProjectPath}\\obj\\Debug\\${Tfm}\\compressed\\ComponentApp#[.{fingerprint=__fingerprint__}]?.styles.css.gz",
4+
"${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\bundle\\ComponentApp.styles.css",
5+
"${ProjectPath}\\obj\\Debug\\${Tfm}\\scopedcss\\projectbundle\\ComponentApp.bundle.scp.css"
6+
]

0 commit comments

Comments
 (0)