diff --git a/sources/assets/Stride.Core.Assets/PackageSession.cs b/sources/assets/Stride.Core.Assets/PackageSession.cs index 21566fde1f..ee463ff82a 100644 --- a/sources/assets/Stride.Core.Assets/PackageSession.cs +++ b/sources/assets/Stride.Core.Assets/PackageSession.cs @@ -965,6 +965,15 @@ public void LoadMissingAssets(ILogger log, IEnumerable packages, Packag } foreach (AssetLoadingInfo assetInfo in assetLoadInfos) { + // Check if the same package exists in the list but with a newer version. + var newerPackage = packages.FirstOrDefault(p => p.Meta.Name == assetInfo.package.Meta.Name && p.Meta.Version > assetInfo.package.Meta.Version); + if (newerPackage is not null) + { + // Skip loading assets for this package as a newer version exists in the list. + log.Warning($"Newer version of {assetInfo.package.Meta.Name} is already referenced in another package. Using version {newerPackage.Meta.Version} instead of {assetInfo.package.Meta.Version}"); + continue; + } + LoadAssets(assetInfo.session, assetInfo.log, assetInfo.package, assetInfo.loadParameters, assetInfo.pendingPackageUpgrades, assetInfo.newLoadParameters); } }