diff --git a/src/Package/build/ReferenceTrimmer.targets b/src/Package/build/ReferenceTrimmer.targets
index a533591..3f970f3 100644
--- a/src/Package/build/ReferenceTrimmer.targets
+++ b/src/Package/build/ReferenceTrimmer.targets
@@ -9,7 +9,11 @@
-
+
<_ReferenceTrimmerDeclaredReferencesFile>$([System.IO.Path]::GetFullPath('$(IntermediateOutputPath)_ReferenceTrimmer_DeclaredReferences.tsv'))
<_ReferenceTrimmerUsedReferencesFile>$([System.IO.Path]::GetFullPath('$(IntermediateOutputPath)_ReferenceTrimmer_UsedReferences.log'))
diff --git a/src/Tasks/CollectDeclaredReferencesTask.cs b/src/Tasks/CollectDeclaredReferencesTask.cs
index 00e3c6a..4d201d8 100644
--- a/src/Tasks/CollectDeclaredReferencesTask.cs
+++ b/src/Tasks/CollectDeclaredReferencesTask.cs
@@ -506,6 +506,9 @@ private static void SaveDeclaredReferences(IReadOnlyList decl
string existing = File.ReadAllText(filePath);
if (string.Equals(existing, newContent, StringComparison.OrdinalIgnoreCase))
{
+ // Touch the file so that MSBuild's Inputs/Outputs incrementality check
+ // sees a fresh timestamp and can skip the target on subsequent builds.
+ File.SetLastWriteTimeUtc(filePath, DateTime.UtcNow);
return;
}
}