Moved PublishedCache from Umbraco.Web into .Net standard project.

Returned to compiling state with a number of things to check and some temporarily commented out functionality.
This commit is contained in:
Andy Butland
2020-01-30 20:05:16 +01:00
parent f1daa125e6
commit 171fce2ecb
62 changed files with 148 additions and 141 deletions
@@ -76,7 +76,7 @@ namespace Umbraco.Web.Models
public abstract DateTime UpdateDate { get; }
/// <inheritdoc />
public virtual string Url => this.Url();
public virtual string Url => string.Empty; // TODO: get from this.Url();
/// <inheritdoc />
public abstract IReadOnlyDictionary<string, PublishedCultureInfo> Cultures { get; }
@@ -160,5 +160,9 @@ namespace Umbraco.Web.PublishedCache
void Notify(DomainCacheRefresher.JsonPayload[] payloads);
#endregion
string GetStatus();
void Collect();
}
}
@@ -0,0 +1,41 @@
using System;
using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Web.PublishedCache;
namespace Umbraco.Infrastructure.PublishedCache
{
public static class CompositionExtensions
{
/// <summary>
/// Sets the published snapshot service.
/// </summary>
/// <param name="composition">The composition.</param>
/// <param name="factory">A function creating a published snapshot service.</param>
public static void SetPublishedSnapshotService(this Composition composition, Func<IFactory, IPublishedSnapshotService> factory)
{
composition.RegisterUnique(factory);
}
/// <summary>
/// Sets the published snapshot service.
/// </summary>
/// <typeparam name="T">The type of the published snapshot service.</typeparam>
/// <param name="composition">The composition.</param>
public static void SetPublishedSnapshotService<T>(this Composition composition)
where T : IPublishedSnapshotService
{
composition.RegisterUnique<IPublishedSnapshotService, T>();
}
/// <summary>
/// Sets the published snapshot service.
/// </summary>
/// <param name="composition">The composition.</param>
/// <param name="service">A published snapshot service.</param>
public static void SetPublishedSnapshotService(this Composition composition, IPublishedSnapshotService service)
{
composition.RegisterUnique(_ => service);
}
}
}
@@ -10,7 +10,6 @@ using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.Dtos;
using Umbraco.Core.Scoping;
using Umbraco.Core.Serialization;
using Umbraco.Web.Composing;
using static Umbraco.Core.Persistence.SqlExtensionsStatics;
namespace Umbraco.Web.PublishedCache.NuCache.DataSource
@@ -20,6 +19,13 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
// provides efficient database access for NuCache
internal class DatabaseDataSource : IDataSource
{
private readonly ILogger _logger;
public DatabaseDataSource(ILogger logger)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
// we want arrays, we want them all loaded, not an enumerable
private Sql<ISqlContext> ContentSourcesSelect(IScope scope, Func<Sql<ISqlContext>, Sql<ISqlContext>> joins = null)
@@ -181,7 +187,7 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
return scope.Database.Query<ContentSourceDto>(sql).Select(CreateMediaNodeKit);
}
private static ContentNodeKit CreateContentNodeKit(ContentSourceDto dto)
private ContentNodeKit CreateContentNodeKit(ContentSourceDto dto)
{
ContentData d = null;
ContentData p = null;
@@ -192,7 +198,7 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
{
if (Debugger.IsAttached)
throw new Exception("Missing cmsContentNu edited content for node " + dto.Id + ", consider rebuilding.");
Current.Logger.Warn<DatabaseDataSource>("Missing cmsContentNu edited content for node {NodeId}, consider rebuilding.", dto.Id);
_logger.Warn<DatabaseDataSource>("Missing cmsContentNu edited content for node {NodeId}, consider rebuilding.", dto.Id);
}
else
{
@@ -219,7 +225,7 @@ namespace Umbraco.Web.PublishedCache.NuCache.DataSource
{
if (Debugger.IsAttached)
throw new Exception("Missing cmsContentNu published content for node " + dto.Id + ", consider rebuilding.");
Current.Logger.Warn<DatabaseDataSource>("Missing cmsContentNu published content for node {NodeId}, consider rebuilding.", dto.Id);
_logger.Warn<DatabaseDataSource>("Missing cmsContentNu published content for node {NodeId}, consider rebuilding.", dto.Id);
}
else
{
@@ -6,11 +6,9 @@ using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Security;
using Umbraco.Core.Services;
using Umbraco.Core.Xml.XPath;
using Umbraco.Web.PublishedCache.NuCache.Navigable;
using Umbraco.Web.Security;
namespace Umbraco.Web.PublishedCache.NuCache
{
@@ -3,6 +3,7 @@ using Umbraco.Core.Composing;
using Umbraco.Core.Models;
using Umbraco.Core.Scoping;
using Umbraco.Core.Services;
using Umbraco.Infrastructure.PublishedCache;
using Umbraco.Web.PublishedCache.NuCache.DataSource;
namespace Umbraco.Web.PublishedCache.NuCache
@@ -4,9 +4,8 @@ using System.Linq;
using Umbraco.Core;
using Umbraco.Core.Cache;
using Umbraco.Core.Exceptions;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Web.Composing;
using Umbraco.Core.Services;
using Umbraco.Web.Models;
using Umbraco.Web.PublishedCache.NuCache.DataSource;
@@ -48,28 +47,6 @@ namespace Umbraco.Web.PublishedCache.NuCache
PropertiesArray = properties.ToArray();
}
private string GetProfileNameById(int id)
{
var cache = GetCurrentSnapshotCache();
return cache == null
? GetProfileNameByIdNoCache(id)
: (string)cache.Get(CacheKeys.ProfileName(id), () => GetProfileNameByIdNoCache(id));
}
private static string GetProfileNameByIdNoCache(int id)
{
#if DEBUG
var userService = Current.Services?.UserService;
if (userService == null) return "[null]"; // for tests
#else
// we don't want each published content to hold a reference to the service
// so where should they get the service from really? from the locator...
var userService = Current.Services.UserService;
#endif
var user = userService.GetProfileById(id);
return user?.Name;
}
// used when cloning in ContentNode
public PublishedContent(
ContentNode contentNode,
@@ -171,7 +148,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
public override int CreatorId => _contentNode.CreatorId;
/// <inheritdoc />
public override string CreatorName => GetProfileNameById(_contentNode.CreatorId);
public override string CreatorName => string.Empty; // TODO: remove (as want to avoid injecting user service to get these names)
/// <inheritdoc />
public override DateTime CreateDate => _contentNode.CreateDate;
@@ -180,7 +157,7 @@ namespace Umbraco.Web.PublishedCache.NuCache
public override int WriterId => ContentData.WriterId;
/// <inheritdoc />
public override string WriterName => GetProfileNameById(ContentData.WriterId);
public override string WriterName => string.Empty; // TODO: remove (as want to avoid injecting user service to get these names)
/// <inheritdoc />
public override DateTime UpdateDate => ContentData.VersionDate;
@@ -26,11 +26,9 @@ using Umbraco.Core.Services.Changes;
using Umbraco.Core.Services.Implement;
using Umbraco.Core.Strings;
using Umbraco.Web.Cache;
using Umbraco.Web.Install;
using Umbraco.Web.PublishedCache.NuCache.DataSource;
using Umbraco.Web.Routing;
using File = System.IO.File;
using Current = Umbraco.Web.Composing.Current;
namespace Umbraco.Web.PublishedCache.NuCache
{
@@ -1767,7 +1765,7 @@ AND cmsContentNu.nodeId IS NULL
#region Instrument
public string GetStatus()
public override string GetStatus()
{
var dbCacheIsOk = VerifyContentDbCache()
&& VerifyMediaDbCache()
@@ -1790,7 +1788,7 @@ AND cmsContentNu.nodeId IS NULL
" and " + ms + " snapshot" + (ms > 1 ? "s" : "") + ".";
}
public void Collect()
public override void Collect()
{
var contentCollect = _contentStore.CollectAsync();
var mediaCollect = _mediaStore.CollectAsync();
@@ -94,11 +94,14 @@ namespace Umbraco.Web.PublishedCache
public virtual IEnumerable<IPublishedContent> GetByContentType(IPublishedContentType contentType)
{
// TODO: move this extension method and get working again.
// this is probably not super-efficient, but works
// some cache implementation may want to override it, though
return GetAtRoot()
.SelectMany(x => x.DescendantsOrSelf())
.Where(x => x.ContentType.Id == contentType.Id);
return Enumerable.Empty<IPublishedContent>();
//return GetAtRoot()
// .SelectMany(x => x.DescendantsOrSelf())
// .Where(x => x.ContentType.Id == contentType.Id);
}
}
}
@@ -14,7 +14,7 @@ namespace Umbraco.Web.PublishedCache
// an entirely new models factory + not even sure it makes sense at all since
// sets are created manually todo yes it does! - what does this all mean?
//
internal class PublishedElement : IPublishedElement
public class PublishedElement : IPublishedElement
{
// initializes a new instance of the PublishedElement class
// within the context of a published snapshot service (eg a published content property value)
@@ -38,5 +38,11 @@ namespace Umbraco.Web.PublishedCache
public virtual void Dispose()
{ }
public abstract string GetStatus();
public virtual void Collect()
{
}
}
}
@@ -0,0 +1,26 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CSharpTest.Net.Collections-NetStd2" Version="14.906.1403.1084" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Umbraco.Abstractions\Umbraco.Abstractions.csproj" />
<ProjectReference Include="..\Umbraco.Infrastructure\Umbraco.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
<_Parameter1>Umbraco.Tests</_Parameter1>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
<_Parameter1>Umbraco.Tests.Benchmarks</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
</Project>
@@ -105,6 +105,10 @@
<Project>{29aa69d9-b597-4395-8d42-43b1263c240a}</Project>
<Name>Umbraco.Abstractions</Name>
</ProjectReference>
<ProjectReference Include="..\Umbraco.Infrastructure.PublishedCache\Umbraco.Infrastructure.PublishedCache.csproj">
<Project>{f6de8da0-07cc-4ef2-8a59-2bc81dbb3830}</Project>
<Name>Umbraco.Infrastructure.PublishedCache</Name>
</ProjectReference>
<ProjectReference Include="..\Umbraco.Infrastructure\Umbraco.Infrastructure.csproj">
<Project>{3ae7bf57-966b-45a5-910a-954d7c554441}</Project>
<Name>Umbraco.Infrastructure</Name>
@@ -268,5 +268,10 @@ namespace Umbraco.Tests.LegacyXmlPublishedCache
}
#endregion
public override string GetStatus()
{
return "Test status";
}
}
}
@@ -100,7 +100,7 @@ namespace Umbraco.Tests.Scoping
ScopeProvider,
documentRepository, mediaRepository, memberRepository,
DefaultCultureAccessor,
new DatabaseDataSource(),
new DatabaseDataSource(Mock.Of<ILogger>()),
Factory.GetInstance<IGlobalSettings>(),
Factory.GetInstance<IEntityXmlSerializer>(),
new NoopPublishedModelFactory(),
@@ -72,7 +72,7 @@ namespace Umbraco.Tests.Services
ScopeProvider,
documentRepository, mediaRepository, memberRepository,
DefaultCultureAccessor,
new DatabaseDataSource(),
new DatabaseDataSource(Mock.Of<ILogger>()),
Factory.GetInstance<IGlobalSettings>(),
Factory.GetInstance<IEntityXmlSerializer>(),
Mock.Of<IPublishedModelFactory>(),
+4
View File
@@ -562,6 +562,10 @@
<Project>{fbe7c065-dac0-4025-a78b-63b24d3ab00b}</Project>
<Name>Umbraco.Configuration</Name>
</ProjectReference>
<ProjectReference Include="..\Umbraco.Infrastructure.PublishedCache\Umbraco.Infrastructure.PublishedCache.csproj">
<Project>{f6de8da0-07cc-4ef2-8a59-2bc81dbb3830}</Project>
<Name>Umbraco.Infrastructure.PublishedCache</Name>
</ProjectReference>
<ProjectReference Include="..\Umbraco.Infrastructure\Umbraco.Infrastructure.csproj">
<Project>{3ae7bf57-966b-45a5-910a-954d7c554441}</Project>
<Name>Umbraco.Infrastructure</Name>
+2
View File
@@ -383,7 +383,9 @@
<Message Text="Skip Belle because UmbracoBuild is '$(UmbracoBuild)' (this is not Visual Studio)." Importance="High" Condition="'$(UmbracoBuild)' != ''" />
<Message Text="Skip Belle because $(ProjectDir)Umbraco\lib exists." Importance="High" Condition="Exists('$(ProjectDir)Umbraco\lib')" />
<Message Text="Build Belle because UmbracoBuild is empty (this is Visual Studio), and $(ProjectDir)Umbraco\lib does not exist." Importance="High" Condition="!Exists('$(ProjectDir)Umbraco\lib') and '$(UmbracoBuild)' == ''" />
<!--
<CallTarget Targets="BelleBuild" Condition="!Exists('$(ProjectDir)Umbraco\lib') and '$(UmbracoBuild)' == ''" />
-->
</Target>
<!-- clean Belle when cleaning and rebuilding, but only in Visual Studio -->
<Target Name="CleanBelle" AfterTargets="Clean" Condition="'$(UmbracoBuild)' == ''">
-31
View File
@@ -169,37 +169,6 @@ namespace Umbraco.Web
composition.RegisterUnique(_ => finder);
}
/// <summary>
/// Sets the published snapshot service.
/// </summary>
/// <typeparam name="T">The type of the published snapshot service.</typeparam>
/// <param name="composition">The composition.</param>
public static void SetPublishedSnapshotService<T>(this Composition composition)
where T : IPublishedSnapshotService
{
composition.RegisterUnique<IPublishedSnapshotService, T>();
}
/// <summary>
/// Sets the published snapshot service.
/// </summary>
/// <param name="composition">The composition.</param>
/// <param name="factory">A function creating a published snapshot service.</param>
public static void SetPublishedSnapshotService(this Composition composition, Func<IFactory, IPublishedSnapshotService> factory)
{
composition.RegisterUnique(factory);
}
/// <summary>
/// Sets the published snapshot service.
/// </summary>
/// <param name="composition">The composition.</param>
/// <param name="service">A published snapshot service.</param>
public static void SetPublishedSnapshotService(this Composition composition, IPublishedSnapshotService service)
{
composition.RegisterUnique(_ => service);
}
/// <summary>
/// Sets the site domain helper.
/// </summary>
@@ -17,14 +17,16 @@ namespace Umbraco.Web.Editors
_publishedSnapshotService = publishedSnapshotService ?? throw new ArgumentNullException(nameof(publishedSnapshotService));
}
private PublishedSnapshotService PublishedSnapshotService
private IPublishedSnapshotService PublishedSnapshotService
{
get
{
var svc = _publishedSnapshotService as PublishedSnapshotService;
if (svc == null)
throw new NotSupportedException("Not running NuCache.");
return svc;
// TODO: do we need this?
//var svc = _publishedSnapshotService as PublishedSnapshotService;
//if (svc == null)
// throw new NotSupportedException("Not running NuCache.");
// return svc;
return _publishedSnapshotService;
}
}
@@ -32,9 +34,7 @@ namespace Umbraco.Web.Editors
public string RebuildDbCache()
{
var service = PublishedSnapshotService;
service.RebuildContentDbCache();
service.RebuildMediaDbCache();
service.RebuildMemberDbCache();
service.Rebuild();
return service.GetStatus();
}
@@ -17,13 +17,13 @@ namespace Umbraco.Web.Editors
[HttpGet]
public string GetPublishedStatusUrl()
{
//if (service is PublishedCache.PublishedNoCache.PublishedSnapshotService)
// return "views/dashboard/developer/nocache.html";
return "views/dashboard/settings/nucache.html";
if (_publishedSnapshotService is PublishedCache.NuCache.PublishedSnapshotService)
return "views/dashboard/settings/nucache.html";
// TODO: do we need this check?
//if (_publishedSnapshotService is PublishedCache.NuCache.PublishedSnapshotService)
// return "views/dashboard/settings/nucache.html";
throw new NotSupportedException("Not supported: " + _publishedSnapshotService.GetType().FullName);
//throw new NotSupportedException("Not supported: " + _publishedSnapshotService.GetType().FullName);
}
}
}
+5 -49
View File
@@ -114,6 +114,10 @@
<Name>Umbraco.Examine</Name>
<Project>{07FBC26B-2927-4A22-8D96-D644C667FECC}</Project>
</ProjectReference>
<ProjectReference Include="..\Umbraco.Infrastructure.PublishedCache\Umbraco.Infrastructure.PublishedCache.csproj">
<Project>{f6de8da0-07cc-4ef2-8a59-2bc81dbb3830}</Project>
<Name>Umbraco.Infrastructure.PublishedCache</Name>
</ProjectReference>
<ProjectReference Include="..\Umbraco.Infrastructure\Umbraco.Infrastructure.csproj">
<Project>{3ae7bf57-966b-45a5-910a-954d7c554441}</Project>
<Name>Umbraco.Infrastructure</Name>
@@ -212,10 +216,7 @@
<Compile Include="Net\AspNetSessionIdResolver.cs" />
<Compile Include="Profiling\WebProfilingController.cs" />
<Compile Include="PropertyEditors\RichTextEditorPastedImages.cs" />
<Compile Include="PublishedCache\NuCache\PublishedSnapshotServiceOptions.cs" />
<Compile Include="PublishedCache\NuCache\Snap\GenObj.cs" />
<Compile Include="PublishedCache\NuCache\Snap\GenRef.cs" />
<Compile Include="PublishedCache\NuCache\Snap\LinkedNode.cs" />
<Compile Include="PublishedCache\UmbracoContextPublishedSnapshotAccessor.cs" />
<Compile Include="RoutableDocumentFilter.cs" />
<Compile Include="Routing\DefaultMediaUrlProvider.cs" />
<Compile Include="Routing\IMediaUrlProvider.cs" />
@@ -261,7 +262,6 @@
<Compile Include="PropertyEditors\ValueConverters\MultiUrlPickerValueConverter.cs" />
<Compile Include="Templates\ITemplateRenderer.cs" />
<Compile Include="PropertyEditors\GridPropertyIndexValueFactory.cs" />
<Compile Include="PublishedCache\NuCache\NuCacheComposer.cs" />
<Compile Include="Routing\RedirectTrackingComposer.cs" />
<Compile Include="Runtime\WebInitialComposer.cs" />
<Compile Include="Scheduling\SchedulerComposer.cs" />
@@ -363,48 +363,7 @@
<Compile Include="PropertyEditors\ValueConverters\MediaPickerValueConverter.cs" />
<Compile Include="PropertyEditors\ValueConverters\MemberPickerValueConverter.cs" />
<Compile Include="PropertyEditors\ValueConverters\MultiNodeTreePickerValueConverter.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\BTree.ContentDataSerializer.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\BTree.ContentNodeKitSerializer.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\BTree.DictionaryOfCultureVariationSerializer.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\BTree.DictionaryOfPropertyDataSerializer.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\ContentNestedData.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\CultureVariation.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\IDataSource.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\PropertyData.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\SerializerBase.cs" />
<Compile Include="PublishedCache\NuCache\NuCacheComponent.cs" />
<Compile Include="PublishedCache\NuCache\PublishedSnapshot.cs" />
<Compile Include="PublishedCache\PublishedElement.cs" />
<Compile Include="PublishedCache\PublishedElementPropertyBase.cs" />
<Compile Include="PropertyEditors\ValueConverters\ContentPickerValueConverter.cs" />
<Compile Include="PublishedCache\PublishedSnapshotServiceBase.cs" />
<Compile Include="PublishedCache\NuCache\CacheKeys.cs" />
<Compile Include="PublishedCache\NuCache\ContentCache.cs" />
<Compile Include="PublishedCache\NuCache\ContentNode.cs" />
<Compile Include="PublishedCache\NuCache\ContentNodeKit.cs" />
<Compile Include="PublishedCache\NuCache\ContentStore.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\BTree.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\ContentData.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\ContentSourceDto.cs" />
<Compile Include="PublishedCache\NuCache\DataSource\DatabaseDataSource.cs" />
<Compile Include="PublishedCache\NuCache\DomainCache.cs" />
<Compile Include="PublishedCache\NuCache\PublishedSnapshotService.cs" />
<Compile Include="PublishedCache\NuCache\MediaCache.cs" />
<Compile Include="PublishedCache\NuCache\MemberCache.cs" />
<Compile Include="PublishedCache\NuCache\Navigable\INavigableData.cs" />
<Compile Include="PublishedCache\NuCache\Navigable\NavigableContent.cs" />
<Compile Include="PublishedCache\NuCache\Navigable\NavigableContentType.cs" />
<Compile Include="PublishedCache\NuCache\Navigable\NavigablePropertyType.cs" />
<Compile Include="PublishedCache\NuCache\Navigable\RootContent.cs" />
<Compile Include="PublishedCache\NuCache\Navigable\Source.cs" />
<Compile Include="PublishedCache\NuCache\Property.cs" />
<Compile Include="PublishedCache\NuCache\PublishedContent.cs" />
<Compile Include="PublishedCache\NuCache\PublishedMember.cs" />
<Compile Include="PublishedCache\NuCache\SnapDictionary.cs" />
<Compile Include="PublishedCache\PublishedCacheBase.cs" />
<Compile Include="PublishedCache\PublishedContentTypeCache.cs" />
<Compile Include="PublishedCache\DefaultCultureAccessor.cs" />
<Compile Include="PublishedCache\UmbracoContextPublishedSnapshotAccessor.cs" />
<Compile Include="PublishedElementExtensions.cs" />
<Compile Include="PublishedModels\DummyClassSoThatPublishedModelsNamespaceExists.cs" />
<Compile Include="Routing\ContentFinderByUrl.cs" />
@@ -538,7 +497,6 @@
<Compile Include="PropertyEditors\GridPropertyEditor.cs" />
<Compile Include="Mvc\UmbracoVirtualNodeByIdRouteHandler.cs" />
<Compile Include="PropertyEditors\TagsDataController.cs" />
<Compile Include="PublishedCache\PublishedMember.cs" />
<Compile Include="Mvc\JsonNetResult.cs" />
<Compile Include="Mvc\MinifyJavaScriptResultAttribute.cs" />
<Compile Include="Mvc\EnsurePublishedContentRequestAttribute.cs" />
@@ -641,7 +599,6 @@
<Compile Include="Macros\PartialViewMacroController.cs" />
<Compile Include="Macros\PartialViewMacroEngine.cs" />
<Compile Include="Macros\PartialViewMacroPage.cs" />
<Compile Include="Models\PublishedContentBase.cs" />
<Compile Include="Mvc\AreaRegistrationExtensions.cs" />
<Compile Include="Mvc\QueryStringFilterAttribute.cs" />
<Compile Include="Mvc\MemberAuthorizeAttribute.cs" />
@@ -810,7 +767,6 @@
<EmbeddedResource Include="JavaScript\PreviewInitialize.js" />
<None Include="JavaScript\TinyMceInitialize.js" />
<!--<Content Include="umbraco.presentation\umbraco\users\PermissionEditor.aspx" />-->
<None Include="PublishedCache\NuCache\readme.md" />
</ItemGroup>
<ItemGroup>
<None Include="Web References\org.umbraco.update\checkforupgrade.disco" />
+12 -5
View File
@@ -1,4 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29209.152
MinimumVisualStudioVersion = 10.0.40219.1
@@ -100,18 +101,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IssueTemplates", "IssueTemp
..\.github\ISSUE_TEMPLATE\5_Security_issue.md = ..\.github\ISSUE_TEMPLATE\5_Security_issue.md
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Abstractions", "Umbraco.Abstractions\Umbraco.Abstractions.csproj", "{29AA69D9-B597-4395-8D42-43B1263C240A}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Abstractions", "Umbraco.Abstractions\Umbraco.Abstractions.csproj", "{29AA69D9-B597-4395-8D42-43B1263C240A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.ModelsBuilder.Embedded", "Umbraco.ModelsBuilder.Embedded\Umbraco.ModelsBuilder.Embedded.csproj", "{52AC0BA8-A60E-4E36-897B-E8B97A54ED1C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Infrastructure", "Umbraco.Infrastructure\Umbraco.Infrastructure.csproj", "{3AE7BF57-966B-45A5-910A-954D7C554441}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "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}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Configuration", "Umbraco.Configuration\Umbraco.Configuration.csproj", "{FBE7C065-DAC0-4025-A78B-63B24D3AB00B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Infrastrucure.Persistance.SqlCe", "Umbraco.Infrastrucure.Persistance.SqlCe\Umbraco.Infrastrucure.Persistance.SqlCe.csproj", "{33085570-9BF2-4065-A9B0-A29D920D13BA}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Umbraco.Infrastrucure.Persistance.SqlCe", "Umbraco.Infrastrucure.Persistance.SqlCe\Umbraco.Infrastrucure.Persistance.SqlCe.csproj", "{33085570-9BF2-4065-A9B0-A29D920D13BA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.TestData", "Umbraco.TestData\Umbraco.TestData.csproj", "{FB5676ED-7A69-492C-B802-E7B24144C0FC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Umbraco.Infrastructure.PublishedCache", "Umbraco.Infrastructure.PublishedCache\Umbraco.Infrastructure.PublishedCache.csproj", "{F6DE8DA0-07CC-4EF2-8A59-2BC81DBB3830}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -164,6 +167,10 @@ Global
{FB5676ED-7A69-492C-B802-E7B24144C0FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FB5676ED-7A69-492C-B802-E7B24144C0FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FB5676ED-7A69-492C-B802-E7B24144C0FC}.Release|Any CPU.Build.0 = Release|Any CPU
{F6DE8DA0-07CC-4EF2-8A59-2BC81DBB3830}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F6DE8DA0-07CC-4EF2-8A59-2BC81DBB3830}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F6DE8DA0-07CC-4EF2-8A59-2BC81DBB3830}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F6DE8DA0-07CC-4EF2-8A59-2BC81DBB3830}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE