diff --git a/src/Directory.props b/src/Directory.props
index eccd3517..443e4218 100644
--- a/src/Directory.props
+++ b/src/Directory.props
@@ -14,6 +14,8 @@
true
+
+ true
diff --git a/src/ThisAssembly.AssemblyInfo/SponsorLink.cs b/src/ThisAssembly.AssemblyInfo/SponsorLink.cs
new file mode 100644
index 00000000..a9bb029c
--- /dev/null
+++ b/src/ThisAssembly.AssemblyInfo/SponsorLink.cs
@@ -0,0 +1,14 @@
+using Devlooped;
+using Microsoft.CodeAnalysis;
+
+namespace ThisAssembly;
+
+[Generator]
+class Generator : IIncrementalGenerator
+{
+ readonly SponsorLink link;
+
+ public Generator() => link = new SponsorLink("devlooped", "ThisAssembly.AssemblyInfo");
+
+ public void Initialize(IncrementalGeneratorInitializationContext context) => link.Initialize(context);
+}
\ No newline at end of file
diff --git a/src/ThisAssembly.AssemblyInfo/ThisAssembly.AssemblyInfo.csproj b/src/ThisAssembly.AssemblyInfo/ThisAssembly.AssemblyInfo.csproj
index 8de26d12..4c487dbd 100644
--- a/src/ThisAssembly.AssemblyInfo/ThisAssembly.AssemblyInfo.csproj
+++ b/src/ThisAssembly.AssemblyInfo/ThisAssembly.AssemblyInfo.csproj
@@ -27,6 +27,7 @@ on the `ThisAssembly.Info` class.
+
diff --git a/src/ThisAssembly.Constants/SponsorLink.cs b/src/ThisAssembly.Constants/SponsorLink.cs
new file mode 100644
index 00000000..9041586b
--- /dev/null
+++ b/src/ThisAssembly.Constants/SponsorLink.cs
@@ -0,0 +1,14 @@
+using Devlooped;
+using Microsoft.CodeAnalysis;
+
+namespace ThisAssembly;
+
+[Generator]
+class Generator : IIncrementalGenerator
+{
+ readonly SponsorLink link;
+
+ public Generator() => link = new SponsorLink("devlooped", "ThisAssembly.Constants");
+
+ public void Initialize(IncrementalGeneratorInitializationContext context) => link.Initialize(context);
+}
\ No newline at end of file
diff --git a/src/ThisAssembly.Constants/ThisAssembly.Constants.csproj b/src/ThisAssembly.Constants/ThisAssembly.Constants.csproj
index 27e5f135..c0c166af 100644
--- a/src/ThisAssembly.Constants/ThisAssembly.Constants.csproj
+++ b/src/ThisAssembly.Constants/ThisAssembly.Constants.csproj
@@ -47,6 +47,7 @@ C#:
+
diff --git a/src/ThisAssembly.Metadata/SponsorLink.cs b/src/ThisAssembly.Metadata/SponsorLink.cs
new file mode 100644
index 00000000..4c41251a
--- /dev/null
+++ b/src/ThisAssembly.Metadata/SponsorLink.cs
@@ -0,0 +1,14 @@
+using Devlooped;
+using Microsoft.CodeAnalysis;
+
+namespace ThisAssembly;
+
+[Generator]
+class Generator : IIncrementalGenerator
+{
+ readonly SponsorLink link;
+
+ public Generator() => link = new SponsorLink("devlooped", "ThisAssembly.Metadata");
+
+ public void Initialize(IncrementalGeneratorInitializationContext context) => link.Initialize(context);
+}
\ No newline at end of file
diff --git a/src/ThisAssembly.Metadata/ThisAssembly.Metadata.csproj b/src/ThisAssembly.Metadata/ThisAssembly.Metadata.csproj
index 06fefbcf..c451aa55 100644
--- a/src/ThisAssembly.Metadata/ThisAssembly.Metadata.csproj
+++ b/src/ThisAssembly.Metadata/ThisAssembly.Metadata.csproj
@@ -39,6 +39,7 @@ C#:
+
diff --git a/src/ThisAssembly.Project/SponsorLink.cs b/src/ThisAssembly.Project/SponsorLink.cs
new file mode 100644
index 00000000..9c606e7b
--- /dev/null
+++ b/src/ThisAssembly.Project/SponsorLink.cs
@@ -0,0 +1,14 @@
+using Devlooped;
+using Microsoft.CodeAnalysis;
+
+namespace ThisAssembly;
+
+[Generator]
+class Generator : IIncrementalGenerator
+{
+ readonly SponsorLink link;
+
+ public Generator() => link = new SponsorLink("devlooped", "ThisAssembly.Project");
+
+ public void Initialize(IncrementalGeneratorInitializationContext context) => link.Initialize(context);
+}
\ No newline at end of file
diff --git a/src/ThisAssembly.Project/ThisAssembly.Project.csproj b/src/ThisAssembly.Project/ThisAssembly.Project.csproj
index b9cbb433..2f96cf66 100644
--- a/src/ThisAssembly.Project/ThisAssembly.Project.csproj
+++ b/src/ThisAssembly.Project/ThisAssembly.Project.csproj
@@ -38,6 +38,7 @@ C#:
+
diff --git a/src/ThisAssembly.Resources/SponsorLink.cs b/src/ThisAssembly.Resources/SponsorLink.cs
new file mode 100644
index 00000000..f3e6cf1f
--- /dev/null
+++ b/src/ThisAssembly.Resources/SponsorLink.cs
@@ -0,0 +1,14 @@
+using Devlooped;
+using Microsoft.CodeAnalysis;
+
+namespace ThisAssembly;
+
+[Generator]
+class Generator : IIncrementalGenerator
+{
+ readonly SponsorLink link;
+
+ public Generator() => link = new SponsorLink("devlooped", "ThisAssembly.Resources");
+
+ public void Initialize(IncrementalGeneratorInitializationContext context) => link.Initialize(context);
+}
\ No newline at end of file
diff --git a/src/ThisAssembly.Resources/ThisAssembly.Resources.csproj b/src/ThisAssembly.Resources/ThisAssembly.Resources.csproj
index 4b992d5e..4fefb469 100644
--- a/src/ThisAssembly.Resources/ThisAssembly.Resources.csproj
+++ b/src/ThisAssembly.Resources/ThisAssembly.Resources.csproj
@@ -23,6 +23,7 @@
+
diff --git a/src/ThisAssembly.Strings/SponsorLink.cs b/src/ThisAssembly.Strings/SponsorLink.cs
new file mode 100644
index 00000000..85f580f3
--- /dev/null
+++ b/src/ThisAssembly.Strings/SponsorLink.cs
@@ -0,0 +1,14 @@
+using Devlooped;
+using Microsoft.CodeAnalysis;
+
+namespace ThisAssembly;
+
+[Generator]
+class Generator : IIncrementalGenerator
+{
+ readonly SponsorLink link;
+
+ public Generator() => link = new SponsorLink("devlooped", "ThisAssembly.Strings");
+
+ public void Initialize(IncrementalGeneratorInitializationContext context) => link.Initialize(context);
+}
\ No newline at end of file
diff --git a/src/ThisAssembly.Strings/ThisAssembly.Strings.csproj b/src/ThisAssembly.Strings/ThisAssembly.Strings.csproj
index 6678c127..628ff440 100644
--- a/src/ThisAssembly.Strings/ThisAssembly.Strings.csproj
+++ b/src/ThisAssembly.Strings/ThisAssembly.Strings.csproj
@@ -24,6 +24,7 @@ such as "Hello {name}".
+
diff --git a/src/ThisAssembly.Tests/ThisAssembly.Tests.csproj b/src/ThisAssembly.Tests/ThisAssembly.Tests.csproj
index ba067473..61d63d99 100644
--- a/src/ThisAssembly.Tests/ThisAssembly.Tests.csproj
+++ b/src/ThisAssembly.Tests/ThisAssembly.Tests.csproj
@@ -28,10 +28,11 @@
-
+
+