diff --git a/src/Umbraco.Core/Composing/ComponentCollection.cs b/src/Umbraco.Abstractions/Composing/ComponentCollection.cs similarity index 100% rename from src/Umbraco.Core/Composing/ComponentCollection.cs rename to src/Umbraco.Abstractions/Composing/ComponentCollection.cs diff --git a/src/Umbraco.Core/Composing/ComponentCollectionBuilder.cs b/src/Umbraco.Abstractions/Composing/ComponentCollectionBuilder.cs similarity index 100% rename from src/Umbraco.Core/Composing/ComponentCollectionBuilder.cs rename to src/Umbraco.Abstractions/Composing/ComponentCollectionBuilder.cs diff --git a/src/Umbraco.Abstractions/Composing/Current.cs b/src/Umbraco.Abstractions/Composing/Current.cs index 39a7f5c8be..9f8168f1a9 100644 --- a/src/Umbraco.Abstractions/Composing/Current.cs +++ b/src/Umbraco.Abstractions/Composing/Current.cs @@ -38,7 +38,7 @@ namespace Umbraco.Core.Composing } } - internal static bool HasFactory => _factory != null; + public static bool HasFactory => _factory != null; #region Getters diff --git a/src/Umbraco.Core/Events/CancellableEnumerableObjectEventArgs.cs b/src/Umbraco.Abstractions/Events/CancellableEnumerableObjectEventArgs.cs similarity index 99% rename from src/Umbraco.Core/Events/CancellableEnumerableObjectEventArgs.cs rename to src/Umbraco.Abstractions/Events/CancellableEnumerableObjectEventArgs.cs index 1d52d0d847..5ac77d6253 100644 --- a/src/Umbraco.Core/Events/CancellableEnumerableObjectEventArgs.cs +++ b/src/Umbraco.Abstractions/Events/CancellableEnumerableObjectEventArgs.cs @@ -6,7 +6,6 @@ namespace Umbraco.Core.Events { /// /// Represents event data, for events that support cancellation, and expose impacted objects. - /// /// The type of the exposed, impacted objects. public class CancellableEnumerableObjectEventArgs : CancellableObjectEventArgs>, IEquatable> { diff --git a/src/Umbraco.Core/Events/CancellableObjectEventArgsOfTEventObject.cs b/src/Umbraco.Abstractions/Events/CancellableObjectEventArgsOfTEventObject.cs similarity index 100% rename from src/Umbraco.Core/Events/CancellableObjectEventArgsOfTEventObject.cs rename to src/Umbraco.Abstractions/Events/CancellableObjectEventArgsOfTEventObject.cs diff --git a/src/Umbraco.Core/Events/CopyEventArgs.cs b/src/Umbraco.Abstractions/Events/CopyEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/CopyEventArgs.cs rename to src/Umbraco.Abstractions/Events/CopyEventArgs.cs diff --git a/src/Umbraco.Core/Events/DeleteEventArgs.cs b/src/Umbraco.Abstractions/Events/DeleteEventArgs.cs similarity index 99% rename from src/Umbraco.Core/Events/DeleteEventArgs.cs rename to src/Umbraco.Abstractions/Events/DeleteEventArgs.cs index 07bbe562db..5be669886e 100644 --- a/src/Umbraco.Core/Events/DeleteEventArgs.cs +++ b/src/Umbraco.Abstractions/Events/DeleteEventArgs.cs @@ -100,7 +100,7 @@ namespace Umbraco.Core.Events public IEnumerable DeletedEntities { get => EventObject; - internal set => EventObject = value; + set => EventObject = value; } /// diff --git a/src/Umbraco.Core/Events/DeleteRevisionsEventArgs.cs b/src/Umbraco.Abstractions/Events/DeleteRevisionsEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/DeleteRevisionsEventArgs.cs rename to src/Umbraco.Abstractions/Events/DeleteRevisionsEventArgs.cs diff --git a/src/Umbraco.Core/Events/EventExtensions.cs b/src/Umbraco.Abstractions/Events/EventExtensions.cs similarity index 100% rename from src/Umbraco.Core/Events/EventExtensions.cs rename to src/Umbraco.Abstractions/Events/EventExtensions.cs diff --git a/src/Umbraco.Core/Events/MoveEventArgs.cs b/src/Umbraco.Abstractions/Events/MoveEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/MoveEventArgs.cs rename to src/Umbraco.Abstractions/Events/MoveEventArgs.cs diff --git a/src/Umbraco.Core/Events/NewEventArgs.cs b/src/Umbraco.Abstractions/Events/NewEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/NewEventArgs.cs rename to src/Umbraco.Abstractions/Events/NewEventArgs.cs diff --git a/src/Umbraco.Core/Events/PublishEventArgs.cs b/src/Umbraco.Abstractions/Events/PublishEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/PublishEventArgs.cs rename to src/Umbraco.Abstractions/Events/PublishEventArgs.cs diff --git a/src/Umbraco.Core/Events/RecycleBinEventArgs.cs b/src/Umbraco.Abstractions/Events/RecycleBinEventArgs.cs similarity index 95% rename from src/Umbraco.Core/Events/RecycleBinEventArgs.cs rename to src/Umbraco.Abstractions/Events/RecycleBinEventArgs.cs index 796952de98..3f0f3784a2 100644 --- a/src/Umbraco.Core/Events/RecycleBinEventArgs.cs +++ b/src/Umbraco.Abstractions/Events/RecycleBinEventArgs.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using Umbraco.Core.Models; namespace Umbraco.Core.Events { diff --git a/src/Umbraco.Core/Events/RolesEventArgs.cs b/src/Umbraco.Abstractions/Events/RolesEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/RolesEventArgs.cs rename to src/Umbraco.Abstractions/Events/RolesEventArgs.cs diff --git a/src/Umbraco.Core/Events/RollbackEventArgs.cs b/src/Umbraco.Abstractions/Events/RollbackEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/RollbackEventArgs.cs rename to src/Umbraco.Abstractions/Events/RollbackEventArgs.cs diff --git a/src/Umbraco.Core/Events/SaveEventArgs.cs b/src/Umbraco.Abstractions/Events/SaveEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/SaveEventArgs.cs rename to src/Umbraco.Abstractions/Events/SaveEventArgs.cs diff --git a/src/Umbraco.Core/Events/SendToPublishEventArgs.cs b/src/Umbraco.Abstractions/Events/SendToPublishEventArgs.cs similarity index 100% rename from src/Umbraco.Core/Events/SendToPublishEventArgs.cs rename to src/Umbraco.Abstractions/Events/SendToPublishEventArgs.cs diff --git a/src/Umbraco.Core/Events/TransientEventMessagesFactory.cs b/src/Umbraco.Abstractions/Events/TransientEventMessagesFactory.cs similarity index 81% rename from src/Umbraco.Core/Events/TransientEventMessagesFactory.cs rename to src/Umbraco.Abstractions/Events/TransientEventMessagesFactory.cs index bd2e12dc17..7a0947c990 100644 --- a/src/Umbraco.Core/Events/TransientEventMessagesFactory.cs +++ b/src/Umbraco.Abstractions/Events/TransientEventMessagesFactory.cs @@ -3,7 +3,7 @@ /// /// A simple/default transient messages factory /// - internal class TransientEventMessagesFactory : IEventMessagesFactory + public class TransientEventMessagesFactory : IEventMessagesFactory { public EventMessages Get() { diff --git a/src/Umbraco.Core/PropertyEditors/IIgnoreUserStartNodesConfig.cs b/src/Umbraco.Abstractions/PropertyEditors/IIgnoreUserStartNodesConfig.cs similarity index 82% rename from src/Umbraco.Core/PropertyEditors/IIgnoreUserStartNodesConfig.cs rename to src/Umbraco.Abstractions/PropertyEditors/IIgnoreUserStartNodesConfig.cs index bef3f42f46..28ce8654c3 100644 --- a/src/Umbraco.Core/PropertyEditors/IIgnoreUserStartNodesConfig.cs +++ b/src/Umbraco.Abstractions/PropertyEditors/IIgnoreUserStartNodesConfig.cs @@ -3,7 +3,7 @@ /// /// Marker interface for any editor configuration that supports Ignoring user start nodes /// - internal interface IIgnoreUserStartNodesConfig + public interface IIgnoreUserStartNodesConfig { bool IgnoreUserStartNodes { get; set; } } diff --git a/src/Umbraco.Configuration/Umbraco.Configuration.csproj b/src/Umbraco.Configuration/Umbraco.Configuration.csproj new file mode 100644 index 0000000000..15c6ac263f --- /dev/null +++ b/src/Umbraco.Configuration/Umbraco.Configuration.csproj @@ -0,0 +1,31 @@ + + + + netstandard2.0 + + + + + + + + + + + + + + + + <_UnmanagedRegistrationCache Remove="obj\Umbraco.Configuration.csproj.UnmanagedRegistration.cache" /> + + + + + + + + + + + diff --git a/src/Umbraco.Core/ConfigsExtensions.cs b/src/Umbraco.Core/ConfigsExtensions.cs index d1672c6c7f..5699540389 100644 --- a/src/Umbraco.Core/ConfigsExtensions.cs +++ b/src/Umbraco.Core/ConfigsExtensions.cs @@ -46,7 +46,7 @@ namespace Umbraco.Core factory.GetInstance(), factory.GetInstance(), configDir, - factory.GetInstance(), + factory.GetInstance(), factory.GetInstance().Debug)); } } diff --git a/src/Umbraco.Core/Configuration/Grid/GridConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridConfig.cs index 9aead74886..9691c749df 100644 --- a/src/Umbraco.Core/Configuration/Grid/GridConfig.cs +++ b/src/Umbraco.Core/Configuration/Grid/GridConfig.cs @@ -7,7 +7,7 @@ namespace Umbraco.Core.Configuration.Grid { class GridConfig : IGridConfig { - public GridConfig(ILogger logger, AppCaches appCaches, DirectoryInfo configFolder, ManifestParser manifestParser, bool isDebug) + public GridConfig(ILogger logger, AppCaches appCaches, DirectoryInfo configFolder, IManifestParser manifestParser, bool isDebug) { EditorsConfig = new GridEditorsConfig(logger, appCaches, configFolder, manifestParser, isDebug); } diff --git a/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs index d434da8c70..cab58a6d63 100644 --- a/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs +++ b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs @@ -13,10 +13,10 @@ namespace Umbraco.Core.Configuration.Grid private readonly ILogger _logger; private readonly AppCaches _appCaches; private readonly DirectoryInfo _configFolder; - private readonly ManifestParser _manifestParser; + private readonly IManifestParser _manifestParser; private readonly bool _isDebug; - public GridEditorsConfig(ILogger logger, AppCaches appCaches, DirectoryInfo configFolder, ManifestParser manifestParser, bool isDebug) + public GridEditorsConfig(ILogger logger, AppCaches appCaches, DirectoryInfo configFolder, IManifestParser manifestParser, bool isDebug) { _logger = logger; _appCaches = appCaches; diff --git a/src/Umbraco.Core/Manifest/IManifestParser.cs b/src/Umbraco.Core/Manifest/IManifestParser.cs new file mode 100644 index 0000000000..3641396e0a --- /dev/null +++ b/src/Umbraco.Core/Manifest/IManifestParser.cs @@ -0,0 +1,23 @@ +using System.Collections.Generic; +using Umbraco.Core.PropertyEditors; + +namespace Umbraco.Core.Manifest +{ + public interface IManifestParser + { + string Path { get; set; } + + /// + /// Gets all manifests, merged into a single manifest object. + /// + /// + PackageManifest Manifest { get; } + + /// + /// Parses a manifest. + /// + PackageManifest ParseManifest(string text); + + IEnumerable ParseGridEditors(string text); + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Manifest/ManifestParser.cs b/src/Umbraco.Core/Manifest/ManifestParser.cs index efd9e92b1f..2e55d07059 100644 --- a/src/Umbraco.Core/Manifest/ManifestParser.cs +++ b/src/Umbraco.Core/Manifest/ManifestParser.cs @@ -15,7 +15,7 @@ namespace Umbraco.Core.Manifest /// /// Parses the Main.js file and replaces all tokens accordingly. /// - public class ManifestParser + public class ManifestParser : IManifestParser { private static readonly string Utf8Preamble = Encoding.UTF8.GetString(Encoding.UTF8.GetPreamble()); @@ -153,7 +153,7 @@ namespace Umbraco.Core.Manifest /// /// Parses a manifest. /// - internal PackageManifest ParseManifest(string text) + public PackageManifest ParseManifest(string text) { if (string.IsNullOrWhiteSpace(text)) throw new ArgumentNullOrEmptyException(nameof(text)); @@ -179,7 +179,7 @@ namespace Umbraco.Core.Manifest } // purely for tests - internal IEnumerable ParseGridEditors(string text) + public IEnumerable ParseGridEditors(string text) { return JsonConvert.DeserializeObject>(text); } diff --git a/src/Umbraco.Core/PropertyEditors/IDataEditor.cs b/src/Umbraco.Core/Models/IDataEditor.cs similarity index 99% rename from src/Umbraco.Core/PropertyEditors/IDataEditor.cs rename to src/Umbraco.Core/Models/IDataEditor.cs index 3685cc6494..5d1aece6e5 100644 --- a/src/Umbraco.Core/PropertyEditors/IDataEditor.cs +++ b/src/Umbraco.Core/Models/IDataEditor.cs @@ -52,7 +52,6 @@ namespace Umbraco.Core.PropertyEditors /// Gets a configured value editor. /// IDataValueEditor GetValueEditor(object configuration); - /// /// Gets the configuration for the value editor. /// diff --git a/src/Umbraco.Core/PropertyEditors/ParameterEditorCollection.cs b/src/Umbraco.Core/PropertyEditors/ParameterEditorCollection.cs index 4dd4a75c22..dacda815ec 100644 --- a/src/Umbraco.Core/PropertyEditors/ParameterEditorCollection.cs +++ b/src/Umbraco.Core/PropertyEditors/ParameterEditorCollection.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.PropertyEditors { public class ParameterEditorCollection : BuilderCollectionBase { - public ParameterEditorCollection(DataEditorCollection dataEditors, ManifestParser manifestParser) + public ParameterEditorCollection(DataEditorCollection dataEditors, IManifestParser manifestParser) : base(dataEditors .Where(x => (x.Type & EditorType.MacroParameter) > 0) .Union(manifestParser.Manifest.PropertyEditors)) @@ -15,11 +15,11 @@ namespace Umbraco.Core.PropertyEditors // note: virtual so it can be mocked public virtual IDataEditor this[string alias] => this.SingleOrDefault(x => x.Alias == alias); - + public virtual bool TryGet(string alias, out IDataEditor editor) { editor = this.FirstOrDefault(x => x.Alias == alias); return editor != null; } } -} \ No newline at end of file +} diff --git a/src/Umbraco.Core/PropertyEditors/PropertyEditorCollection.cs b/src/Umbraco.Core/PropertyEditors/PropertyEditorCollection.cs index 712a66e55d..86cfde2ee4 100644 --- a/src/Umbraco.Core/PropertyEditors/PropertyEditorCollection.cs +++ b/src/Umbraco.Core/PropertyEditors/PropertyEditorCollection.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.PropertyEditors { public class PropertyEditorCollection : BuilderCollectionBase { - public PropertyEditorCollection(DataEditorCollection dataEditors, ManifestParser manifestParser) + public PropertyEditorCollection(DataEditorCollection dataEditors, IManifestParser manifestParser) : base(dataEditors .Where(x => (x.Type & EditorType.PropertyValue) > 0) .Union(manifestParser.Manifest.PropertyEditors)) @@ -20,11 +20,11 @@ namespace Umbraco.Core.PropertyEditors // note: virtual so it can be mocked public virtual IDataEditor this[string alias] => this.SingleOrDefault(x => x.Alias == alias); - + public virtual bool TryGet(string alias, out IDataEditor editor) { editor = this.FirstOrDefault(x => x.Alias == alias); return editor != null; } } -} \ No newline at end of file +} diff --git a/src/Umbraco.Core/Runtime/CoreInitialComposer.cs b/src/Umbraco.Core/Runtime/CoreInitialComposer.cs index 1f004846d0..7ae5211876 100644 --- a/src/Umbraco.Core/Runtime/CoreInitialComposer.cs +++ b/src/Umbraco.Core/Runtime/CoreInitialComposer.cs @@ -55,7 +55,7 @@ namespace Umbraco.Core.Runtime composition.Register(); // register manifest parser, will be injected in collection builders where needed - composition.RegisterUnique(); + composition.RegisterUnique(); // register our predefined validators composition.ManifestValueValidators() diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index 25de78105f..7fd5ebd75e 100755 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -166,8 +166,6 @@ - - @@ -178,24 +176,14 @@ - - - - - - - - - - @@ -208,6 +196,7 @@ + @@ -248,6 +237,7 @@ + @@ -288,8 +278,9 @@ + + - @@ -297,12 +288,9 @@ - - - @@ -381,8 +369,6 @@ - - @@ -551,10 +537,7 @@ - - - diff --git a/src/Umbraco.Tests/Manifest/ManifestParserTests.cs b/src/Umbraco.Tests/Manifest/ManifestParserTests.cs index 1c90f68d62..0a187c5a8a 100644 --- a/src/Umbraco.Tests/Manifest/ManifestParserTests.cs +++ b/src/Umbraco.Tests/Manifest/ManifestParserTests.cs @@ -19,7 +19,7 @@ namespace Umbraco.Tests.Manifest [TestFixture] public class ManifestParserTests { - private ManifestParser _parser; + private IManifestParser _parser; [SetUp] public void Setup() diff --git a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs index 2f86bddb3b..75522112b8 100644 --- a/src/Umbraco.Tests/Testing/UmbracoTestBase.cs +++ b/src/Umbraco.Tests/Testing/UmbracoTestBase.cs @@ -365,7 +365,8 @@ namespace Umbraco.Tests.Testing // somehow property editor ends up wanting this Composition.WithCollectionBuilder(); - Composition.RegisterUnique(); + + Composition.RegisterUnique(); // note - don't register collections, use builders Composition.WithCollectionBuilder(); diff --git a/src/Umbraco.Web/ContentApps/ContentAppFactoryCollectionBuilder.cs b/src/Umbraco.Web/ContentApps/ContentAppFactoryCollectionBuilder.cs index 170b9169ef..233a5f5ac6 100644 --- a/src/Umbraco.Web/ContentApps/ContentAppFactoryCollectionBuilder.cs +++ b/src/Umbraco.Web/ContentApps/ContentAppFactoryCollectionBuilder.cs @@ -26,7 +26,7 @@ namespace Umbraco.Web.ContentApps // get the manifest parser just-in-time - injecting it in the ctor would mean that // simply getting the builder in order to configure the collection, would require // its dependencies too, and that can create cycles or other oddities - var manifestParser = factory.GetInstance(); + var manifestParser = factory.GetInstance(); return base.CreateItems(factory).Concat(manifestParser.Manifest.ContentApps.Select(x => new ManifestContentAppFactory(x))); } diff --git a/src/Umbraco.Web/Dashboards/DashboardCollectionBuilder.cs b/src/Umbraco.Web/Dashboards/DashboardCollectionBuilder.cs index 36a417e957..d790b04d46 100644 --- a/src/Umbraco.Web/Dashboards/DashboardCollectionBuilder.cs +++ b/src/Umbraco.Web/Dashboards/DashboardCollectionBuilder.cs @@ -16,7 +16,7 @@ namespace Umbraco.Web.Dashboards // get the manifest parser just-in-time - injecting it in the ctor would mean that // simply getting the builder in order to configure the collection, would require // its dependencies too, and that can create cycles or other oddities - var manifestParser = factory.GetInstance(); + var manifestParser = factory.GetInstance(); var dashboardSections = Merge(base.CreateItems(factory), manifestParser.Manifest.Dashboards); diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index e77a1b70f2..68f234a22a 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -39,13 +39,13 @@ namespace Umbraco.Web.Editors [DisableBrowserCache] public class BackOfficeController : UmbracoController { - private readonly ManifestParser _manifestParser; + private readonly IManifestParser _manifestParser; private readonly UmbracoFeatures _features; private readonly IRuntimeState _runtimeState; private BackOfficeUserManager _userManager; private BackOfficeSignInManager _signInManager; - public BackOfficeController(ManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper) + public BackOfficeController(IManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper) : base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper) { _manifestParser = manifestParser; diff --git a/src/Umbraco.Web/JavaScript/CssInitialization.cs b/src/Umbraco.Web/JavaScript/CssInitialization.cs index 172244038d..8cf9067606 100644 --- a/src/Umbraco.Web/JavaScript/CssInitialization.cs +++ b/src/Umbraco.Web/JavaScript/CssInitialization.cs @@ -10,9 +10,9 @@ namespace Umbraco.Web.JavaScript { internal class CssInitialization : AssetInitialization { - private readonly ManifestParser _parser; + private readonly IManifestParser _parser; - public CssInitialization(ManifestParser parser) + public CssInitialization(IManifestParser parser) { _parser = parser; } diff --git a/src/Umbraco.Web/JavaScript/JsInitialization.cs b/src/Umbraco.Web/JavaScript/JsInitialization.cs index 17e4f7b094..6956864ea3 100644 --- a/src/Umbraco.Web/JavaScript/JsInitialization.cs +++ b/src/Umbraco.Web/JavaScript/JsInitialization.cs @@ -17,9 +17,9 @@ namespace Umbraco.Web.JavaScript /// internal class JsInitialization : AssetInitialization { - private readonly ManifestParser _parser; + private readonly IManifestParser _parser; - public JsInitialization(ManifestParser parser) + public JsInitialization(IManifestParser parser) { _parser = parser; } diff --git a/src/Umbraco.Web/Sections/SectionCollectionBuilder.cs b/src/Umbraco.Web/Sections/SectionCollectionBuilder.cs index e38da85cfa..de883db83a 100644 --- a/src/Umbraco.Web/Sections/SectionCollectionBuilder.cs +++ b/src/Umbraco.Web/Sections/SectionCollectionBuilder.cs @@ -16,7 +16,7 @@ namespace Umbraco.Web.Sections // get the manifest parser just-in-time - injecting it in the ctor would mean that // simply getting the builder in order to configure the collection, would require // its dependencies too, and that can create cycles or other oddities - var manifestParser = factory.GetInstance(); + var manifestParser = factory.GetInstance(); return base.CreateItems(factory).Concat(manifestParser.Manifest.Sections); } diff --git a/src/umbraco.sln b/src/umbraco.sln index b89daf1925..07ed63c7a3 100644 --- a/src/umbraco.sln +++ b/src/umbraco.sln @@ -111,6 +111,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.ModelsBuilder.Embed EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Infrastructure", "Umbraco.Infrastructure\Umbraco.Infrastructure.csproj", "{3AE7BF57-966B-45A5-910A-954D7C554441}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Configuration", "Umbraco.Configuration\Umbraco.Configuration.csproj", "{FBE7C065-DAC0-4025-A78B-63B24D3AB00B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -155,6 +157,10 @@ Global {3AE7BF57-966B-45A5-910A-954D7C554441}.Debug|Any CPU.Build.0 = Debug|Any CPU {3AE7BF57-966B-45A5-910A-954D7C554441}.Release|Any CPU.ActiveCfg = Release|Any CPU {3AE7BF57-966B-45A5-910A-954D7C554441}.Release|Any CPU.Build.0 = Release|Any CPU + {FBE7C065-DAC0-4025-A78B-63B24D3AB00B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FBE7C065-DAC0-4025-A78B-63B24D3AB00B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FBE7C065-DAC0-4025-A78B-63B24D3AB00B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FBE7C065-DAC0-4025-A78B-63B24D3AB00B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE