diff --git a/src/Skybrud.Essentials.Umbraco/EssentialsManifestFilter.cs b/src/Skybrud.Essentials.Umbraco/EssentialsManifestFilter.cs
index 2c19240..9ac48d6 100644
--- a/src/Skybrud.Essentials.Umbraco/EssentialsManifestFilter.cs
+++ b/src/Skybrud.Essentials.Umbraco/EssentialsManifestFilter.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Reflection;
using Umbraco.Cms.Core.Manifest;
namespace Skybrud.Essentials.Umbraco;
@@ -8,9 +9,10 @@ public class EssentialsManifestFilter : IManifestFilter {
///
public void Filter(List manifests) {
- manifests.Add(new PackageManifest {
+
+ // Initialize a new manifest filter for this package
+ PackageManifest manifest = new() {
AllowPackageTelemetry = false,
- PackageId = EssentialsPackage.Alias,
PackageName = EssentialsPackage.Name,
Version = EssentialsPackage.InformationalVersion,
Scripts = [
@@ -20,7 +22,21 @@ public void Filter(List manifests) {
Stylesheets = [
$"/App_Plugins/{EssentialsPackage.AppPlugins}/Styles/Styles.css"
]
- });
+ };
+
+ // The "PackageId" property isn't available prior to Umbraco 12, and since the package is build against
+ // Umbraco 10, we need to use reflection for setting the property value for Umbraco 12+. Ideally this
+ // shouldn't fail, but we might at least add a try/catch to be sure
+ try {
+ PropertyInfo? property = manifest.GetType().GetProperty("PackageId");
+ property?.SetValue(manifest, EssentialsPackage.Alias);
+ } catch {
+ // We don't really care about the exception
+ }
+
+ // Append the manifest
+ manifests.Add(manifest);
+
}
}
\ No newline at end of file