diff --git a/src/tools/Avalonia.Generators/Avalonia.Generators.csproj b/src/tools/Avalonia.Generators/Avalonia.Generators.csproj
new file mode 100644
index 0000000000..7fd89429ea
--- /dev/null
+++ b/src/tools/Avalonia.Generators/Avalonia.Generators.csproj
@@ -0,0 +1,29 @@
+
+
+ netstandard2.0
+ preview
+ true
+ false
+ XamlNameReferenceGenerator
+ true
+ Avalonia.Generators
+ true
+
+
+
+
+
+
+
+
+
+
+
+ true
+ buildTransitive\$(PackageId).props
+
+
+
+
+
+
diff --git a/src/tools/Avalonia.Generators/Avalonia.Generators.props b/src/tools/Avalonia.Generators/Avalonia.Generators.props
new file mode 100644
index 0000000000..ba46b88591
--- /dev/null
+++ b/src/tools/Avalonia.Generators/Avalonia.Generators.props
@@ -0,0 +1,20 @@
+
+
+ InitializeComponent
+ internal
+ *
+ *
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/tools/Avalonia.Generators/Compiler/DataTemplateTransformer.cs b/src/tools/Avalonia.Generators/Compiler/DataTemplateTransformer.cs
new file mode 100644
index 0000000000..e7c60c79ad
--- /dev/null
+++ b/src/tools/Avalonia.Generators/Compiler/DataTemplateTransformer.cs
@@ -0,0 +1,17 @@
+using XamlX.Ast;
+using XamlX.Transform;
+
+namespace Avalonia.Generators.Compiler;
+
+internal class DataTemplateTransformer : IXamlAstTransformer
+{
+ public IXamlAstNode Transform(AstTransformationContext context, IXamlAstNode node)
+ {
+ if (node is XamlAstObjectNode objectNode &&
+ objectNode.Type is XamlAstXmlTypeReference typeReference &&
+ (typeReference.Name == "DataTemplate" ||
+ typeReference.Name == "ControlTemplate"))
+ objectNode.Children.Clear();
+ return node;
+ }
+}
\ No newline at end of file
diff --git a/src/tools/Avalonia.Generators/Compiler/MiniCompiler.cs b/src/tools/Avalonia.Generators/Compiler/MiniCompiler.cs
new file mode 100644
index 0000000000..71f34d173c
--- /dev/null
+++ b/src/tools/Avalonia.Generators/Compiler/MiniCompiler.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using XamlX.Compiler;
+using XamlX.Emit;
+using XamlX.Transform;
+using XamlX.Transform.Transformers;
+using XamlX.TypeSystem;
+
+namespace Avalonia.Generators.Compiler;
+
+internal sealed class MiniCompiler : XamlCompiler