Mike Chambers
06/17/2026, 9:53 AMcsharp
using System.Reflection;
using Umbraco.Cms.Core.Manifest;
namespace Lovell.Code.Extensions
{
public class InvisiblePackageManifestReader : IPackageManifestReader
{
public Task<IEnumerable<PackageManifest>> ReadPackageManifestsAsync()
{
// Dynamically grab your real assembly version
var assemblyVersion = Assembly.GetExecutingAssembly()
.GetName().Version?.ToString(3) ?? "1.0.0";
var ghostManifest = new PackageManifest
{
Id = "", // Matches your package ID
Name = "",
Version = assemblyVersion,
Extensions = Array.Empty<object>() // The magic line: empty array forces it into the list without loading frontend assets
};
return Task.FromResult<IEnumerable<PackageManifest>>(new[] { ghostManifest });
}
}
}