Clean up and improve project templates

This commit is contained in:
Ronald Barendse
2022-02-23 23:20:13 +01:00
parent 4c037774de
commit 5813a8aadf
16 changed files with 602 additions and 650 deletions

View File

@@ -12,14 +12,10 @@ namespace Umbraco.Cms.Web.UI
.Build() .Build()
.Run(); .Run();
public static IHostBuilder CreateHostBuilder(string[] args) => public static IHostBuilder CreateHostBuilder(string[] args)
Host.CreateDefaultBuilder(args) => Host.CreateDefaultBuilder(args)
#if DEBUG #if DEBUG
.ConfigureAppConfiguration(config .ConfigureAppConfiguration(config => config.AddJsonFile("appsettings.Local.json", optional: true, reloadOnChange: true))
=> config.AddJsonFile(
"appsettings.Local.json",
optional: true,
reloadOnChange: true))
#endif #endif
.ConfigureLogging(x => x.ClearProviders()) .ConfigureLogging(x => x.ClearProviders())
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>()); .ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());

View File

@@ -20,7 +20,7 @@ namespace Umbraco.Cms.Web.UI
/// <param name="webHostEnvironment">The web hosting environment.</param> /// <param name="webHostEnvironment">The web hosting environment.</param>
/// <param name="config">The configuration.</param> /// <param name="config">The configuration.</param>
/// <remarks> /// <remarks>
/// Only a few services are possible to be injected here https://github.com/dotnet/aspnetcore/issues/9337 /// Only a few services are possible to be injected here https://github.com/dotnet/aspnetcore/issues/9337.
/// </remarks> /// </remarks>
public Startup(IWebHostEnvironment webHostEnvironment, IConfiguration config) public Startup(IWebHostEnvironment webHostEnvironment, IConfiguration config)
{ {
@@ -34,18 +34,15 @@ namespace Umbraco.Cms.Web.UI
/// <param name="services">The services.</param> /// <param name="services">The services.</param>
/// <remarks> /// <remarks>
/// This method gets called by the runtime. Use this method to add services to the container. /// This method gets called by the runtime. Use this method to add services to the container.
/// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 /// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940.
/// </remarks> /// </remarks>
public void ConfigureServices(IServiceCollection services) public void ConfigureServices(IServiceCollection services)
{ {
#pragma warning disable IDE0022 // Use expression body for methods
services.AddUmbraco(_env, _config) services.AddUmbraco(_env, _config)
.AddBackOffice() .AddBackOffice()
.AddWebsite() .AddWebsite()
.AddComposers() .AddComposers()
.Build(); .Build();
#pragma warning restore IDE0022 // Use expression body for methods
} }
/// <summary> /// <summary>

View File

@@ -3,89 +3,39 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<RootNamespace>Umbraco.Cms.Web.UI</RootNamespace> <RootNamespace>Umbraco.Cms.Web.UI</RootNamespace>
<DefaultItemExcludes>
$(DefaultItemExcludes);
umbraco/Data/**;
umbraco/Logs/**;
wwwroot/umbraco/**
</DefaultItemExcludes>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DocumentationFile>bin/Release/Umbraco.Web.UI.xml</DocumentationFile> <DocumentationFile>bin/Release/Umbraco.Web.UI.xml</DocumentationFile>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory> <CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="../Umbraco.Persistence.SqlCe/Umbraco.Persistence.SqlCe.csproj" Condition="'$(OS)' == 'Windows_NT'" />
<ProjectReference Include="../Umbraco.PublishedCache.NuCache/Umbraco.PublishedCache.NuCache.csproj" /> <ProjectReference Include="../Umbraco.PublishedCache.NuCache/Umbraco.PublishedCache.NuCache.csproj" />
<ProjectReference Include="../Umbraco.Web.BackOffice/Umbraco.Web.BackOffice.csproj" /> <ProjectReference Include="../Umbraco.Web.BackOffice/Umbraco.Web.BackOffice.csproj" />
<ProjectReference Include="../Umbraco.Web.Common/Umbraco.Web.Common.csproj" /> <ProjectReference Include="../Umbraco.Web.Common/Umbraco.Web.Common.csproj" />
<ProjectReference Include="../Umbraco.Web.Website/Umbraco.Web.Website.csproj" /> <ProjectReference Include="../Umbraco.Web.Website/Umbraco.Web.Website.csproj" />
<ProjectReference Include="../Umbraco.Persistence.SqlCe/Umbraco.Persistence.SqlCe.csproj" Condition="'$(OS)' == 'Windows_NT'" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" />
<RuntimeHostConfigurationOption Condition="$(RuntimeIdentifier.StartsWith('linux')) Or $(RuntimeIdentifier.StartsWith('win')) Or ('$(RuntimeIdentifier)' == '' And !$([MSBuild]::IsOSPlatform('osx')))" Include="System.Globalization.AppLocalIcu" Value="68.2.0.9" /> <RuntimeHostConfigurationOption Condition="$(RuntimeIdentifier.StartsWith('linux')) Or $(RuntimeIdentifier.StartsWith('win')) Or ('$(RuntimeIdentifier)' == '' And !$([MSBuild]::IsOSPlatform('osx')))" Include="System.Globalization.AppLocalIcu" Value="68.2.0.9" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="App_Plugins" />
<Folder Include="Views" />
</ItemGroup>
<ItemGroup>
<Compile Remove="umbraco/Data/**" />
<Compile Remove="umbraco/logs/**" />
<Compile Remove="umbraco/mediacache/**" />
<Compile Remove="wwwroot/umbraco/**" />
<Compile Remove="App_Data/**" />
<Compile Remove="Controllers\**" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="App_Data/**" />
<EmbeddedResource Remove="umbraco/Data/**" />
<EmbeddedResource Remove="umbraco/logs/**" />
<EmbeddedResource Remove="umbraco/mediacache/**" />
<EmbeddedResource Remove="Controllers\**" />
</ItemGroup>
<ItemGroup>
<Content Remove="App_Data/**" />
<Content Remove="umbraco/Data/**" />
<Content Remove="umbraco/logs/**" />
<Content Remove="umbraco/mediacache/**" />
<Content Remove="umbraco\UmbracoWebsite\NotFound.cshtml" />
<Content Remove="wwwroot/Web.config" />
<Content Remove="Controllers\**" />
</ItemGroup>
<ItemGroup>
<None Include="config/**/*.*">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</None>
<None Include="umbraco/**/*.*">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
</None>
<None Remove="App_Data/**" />
<None Remove="umbraco/Data/**" />
<None Remove="umbraco/logs/**" />
<None Remove="umbraco/mediacache/**" />
<None Include="umbraco/UmbracoWebsite/NoNodes.cshtml" />
<None Remove="Controllers\**" />
</ItemGroup>
<!-- We don't want to include the generated files, they will throw a lot of errors -->
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.11" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.11" />
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0"> <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="Umbraco.Code" Version="1.2.0" PrivateAssets="all" />
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Umbraco.Code" Version="1.2.0">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>
@@ -96,8 +46,8 @@
<PropertyGroup> <PropertyGroup>
<BellePath>$(ProjectDir)wwwroot/umbraco</BellePath> <BellePath>$(ProjectDir)wwwroot/umbraco</BellePath>
<JsonSchemaPath>$(ProjectDir)umbraco/config/appsettings-schema.json</JsonSchemaPath> <JsonSchemaPath>$(ProjectDir)umbraco/config/appsettings-schema.json</JsonSchemaPath>
</PropertyGroup> </PropertyGroup>
<Target Name="CheckPreconditions" BeforeTargets="Build"> <Target Name="CheckPreconditions" BeforeTargets="Build">
<Message Text="-CheckPreconditions-" Importance="high" /> <Message Text="-CheckPreconditions-" Importance="high" />
<Message Text="JsonSchemaPath: $(JsonSchemaPath)" Importance="high" /> <Message Text="JsonSchemaPath: $(JsonSchemaPath)" Importance="high" />
@@ -108,33 +58,33 @@
<Message Text="Skip Belle because $(BellePath) exists." Importance="High" Condition="Exists('$(BellePath)')" /> <Message Text="Skip Belle because $(BellePath) exists." Importance="High" Condition="Exists('$(BellePath)')" />
<Message Text="Build Belle because UmbracoBuild is empty (this is Visual Studio), and $(BellePath) does not exist." Importance="High" Condition="!Exists('$(BellePath)') and '$(UmbracoBuild)' == ''" /> <Message Text="Build Belle because UmbracoBuild is empty (this is Visual Studio), and $(BellePath) does not exist." Importance="High" Condition="!Exists('$(BellePath)') and '$(UmbracoBuild)' == ''" />
<CallTarget Targets="BelleBuild" Condition="!Exists('$(BellePath)') and '$(UmbracoBuild)' == ''" /> <CallTarget Targets="BelleBuild" Condition="!Exists('$(BellePath)') and '$(UmbracoBuild)' == ''" />
<Message Text="Skip JsonSchema generation because $(JsonSchemaPath) exists." Importance="High" Condition="Exists('$(JsonSchemaPath)')" /> <Message Text="Skip JsonSchema generation because $(JsonSchemaPath) exists." Importance="High" Condition="Exists('$(JsonSchemaPath)')" />
<Message Text="Generate the appsettings json schema." Importance="High" Condition="!Exists('$(JsonSchemaPath)') and '$(UmbracoBuild)' == ''" /> <Message Text="Generate the appsettings json schema." Importance="High" Condition="!Exists('$(JsonSchemaPath)') and '$(UmbracoBuild)' == ''" />
<CallTarget Targets="JsonSchemaBuild" Condition="!Exists('$(JsonSchemaPath)') and '$(UmbracoBuild)' == ''" /> <CallTarget Targets="JsonSchemaBuild" Condition="!Exists('$(JsonSchemaPath)') and '$(UmbracoBuild)' == ''" />
<CallTarget Targets="AppsettingsBuild" Condition="!Exists('appsettings.json')" /> <CallTarget Targets="AppsettingsBuild" Condition="!Exists('appsettings.json')" />
<CallTarget Targets="AppsettingsDevBuild" Condition="!Exists('appsettings.Development.json')" /> <CallTarget Targets="AppsettingsDevBuild" Condition="!Exists('appsettings.Development.json')" />
</Target> </Target>
<Target Name="BelleBuild"> <Target Name="BelleBuild">
<Exec WorkingDirectory="$(ProjectDir)/../Umbraco.Web.UI.Client/" Command="npm ci" /> <Exec WorkingDirectory="$(ProjectDir)/../Umbraco.Web.UI.Client/" Command="npm ci --no-fund --no-audit --prefer-offline" />
<Exec WorkingDirectory="$(ProjectDir)/../Umbraco.Web.UI.Client/" Command="npm run build:skip-tests" /> <Exec WorkingDirectory="$(ProjectDir)/../Umbraco.Web.UI.Client/" Command="npm run build:skip-tests" />
</Target> </Target>
<Target Name="JsonSchemaBuild"> <Target Name="JsonSchemaBuild">
<!-- <Exec WorkingDirectory="$(ProjectDir)/../../" Command="powershell -ExecutionPolicy RemoteSigned -Command '&amp;dotnet run &#45;&#45;project $pwd/src/JsonSchema/JsonSchema.csproj -c Release &#45;&#45; &#45;&#45;outputFile $pwd/src/Umbraco.Web.UI/$(JsonSchemaPath)'" />--> <!-- <Exec WorkingDirectory="$(ProjectDir)/../../" Command="powershell -ExecutionPolicy RemoteSigned -Command '&amp;dotnet run &#45;&#45;project $pwd/src/JsonSchema/JsonSchema.csproj -c Release &#45;&#45; &#45;&#45;outputFile $pwd/src/Umbraco.Web.UI/$(JsonSchemaPath)'" /> -->
</Target> </Target>
<Target Name="AppsettingsBuild"> <Target Name="AppsettingsBuild">
<Message Text="Generating appsettings.json because it doesnt exist" Importance="High" /> <Message Text="Generating appsettings.json because it doesnt exist" Importance="High" />
<Copy SourceFiles="$(Projectdir)/appsettings.template.json" DestinationFiles="$(ProjectDir)/appsettings.json" /> <Copy SourceFiles="$(Projectdir)/appsettings.template.json" DestinationFiles="$(ProjectDir)/appsettings.json" />
</Target> </Target>
<Target Name="AppsettingsDevBuild"> <Target Name="AppsettingsDevBuild">
<Message Text="Generating appsettings.Development.json because it doesnt exist" Importance="High" /> <Message Text="Generating appsettings.Development.json because it doesnt exist" Importance="High" />
<Copy SourceFiles="$(ProjectDir)appsettings.Development.template.json" DestinationFiles="$(ProjectDir)appsettings.Development.json" /> <Copy SourceFiles="$(ProjectDir)appsettings.Development.template.json" DestinationFiles="$(ProjectDir)appsettings.Development.json" />
</Target> </Target>
<!-- Clean Belle when cleaning and rebuilding, but only in Visual Studio -->
<!-- clean Belle when cleaning and rebuilding, but only in Visual Studio -->
<Target Name="CleanPreconditions" AfterTargets="Clean" Condition="'$(UmbracoBuild)' == ''"> <Target Name="CleanPreconditions" AfterTargets="Clean" Condition="'$(UmbracoBuild)' == ''">
<Message Text="-CleanPreconditions-" Importance="high" /> <Message Text="-CleanPreconditions-" Importance="high" />
<Message Text="Nothing to clean, as $(BellePath) does not exist." Importance="High" Condition="!Exists('$(BellePath)')" /> <Message Text="Nothing to clean, as $(BellePath) does not exist." Importance="High" Condition="!Exists('$(BellePath)')" />
@@ -144,8 +94,8 @@
<BelleLib Include="$(BellePath)" /> <BelleLib Include="$(BellePath)" />
</ItemGroup> </ItemGroup>
<RemoveDir Directories="@(BelleLib)" Condition="Exists('$(BellePath)') and !Exists('$(SolutionDir)preserve.belle')" /> <RemoveDir Directories="@(BelleLib)" Condition="Exists('$(BellePath)') and !Exists('$(SolutionDir)preserve.belle')" />
<Message Text="Remove $(JsonSchemaPath)." Importance="High" Condition="Exists('$(JsonSchemaPath)') and !Exists('$(SolutionDir)preserve.jsonschema')" /> <Message Text="Remove $(JsonSchemaPath)." Importance="High" Condition="Exists('$(JsonSchemaPath)') and !Exists('$(SolutionDir)preserve.jsonschema')" />
<Delete Files="$(JsonSchemaPath)" Condition="Exists('$(JsonSchemaPath)') and !Exists('$(SolutionDir)preserve.jsonschema')" /> <Delete Files="$(JsonSchemaPath)" Condition="Exists('$(JsonSchemaPath)') and !Exists('$(SolutionDir)preserve.jsonschema')" />
</Target> </Target>
</Project> </Project>

View File

@@ -1,6 +1,13 @@
{ {
"$schema": "http://json.schemastore.org/dotnetcli.host", "$schema": "http://json.schemastore.org/dotnetcli.host",
"symbolInfo": { "symbolInfo": {
"Framework": {
"longName": "Framework",
"shortName": "F"
},
"UmbracoVersion": {
"longName": "version",
"shortName": "v"
} }
}
} }

View File

@@ -1,13 +1,15 @@
{ {
"$schema": "http://json.schemastore.org/vs-2017.3.host", "$schema": "http://json.schemastore.org/vs-2017.3.host",
"order" : 0, "order": 0,
"icon": "../../icon.png", "icon": "../../icon.png",
"description": { "description": {
"id": "UmbracoPackage", "id": "UmbracoPackage",
"text": "Umbraco Package - An empty Umbraco CMS package (Plugin)" "text": "Umbraco Package - An empty Umbraco CMS package/plugin"
}, },
"symbolInfo": [ "symbolInfo": [
{
] "id": "UmbracoVersion",
"isVisible": "true"
}
]
} }

View File

@@ -1,99 +1,108 @@
{ {
"$schema": "http://json.schemastore.org/template", "$schema": "http://json.schemastore.org/template",
"author": "Umbraco HQ", "author": "Umbraco HQ",
"description": "An empty Umbraco Package/Plugin ready to get started", "classifications": [
"classifications": [ "Web", "CMS", "Umbraco", "Package", "Plugin"], "Web",
"groupIdentity": "Umbraco.Templates.UmbracoPackage", "CMS",
"identity": "Umbraco.Templates.UmbracoPackage.CSharp", "Umbraco",
"name": "Umbraco Package", "Package",
"shortName": "umbracopackage", "Plugin"
"defaultName": "UmbracoPackage1", ],
"preferNameDirectory": true, "name": "Umbraco Package",
"tags": { "description": "An empty Umbraco package/plugin project ready to get started",
"language": "C#", "groupIdentity": "Umbraco.Templates.UmbracoPackage",
"type": "project" "identity": "Umbraco.Templates.UmbracoPackage.CSharp",
}, "shortName": "umbracopackage",
"primaryOutputs": [ "tags": {
"language": "C#",
"type": "project"
},
"sourceName": "UmbracoPackage",
"defaultName": "UmbracoPackage1",
"preferNameDirectory": true,
"symbols": {
"Framework": {
"displayName": "Framework",
"description": "The target framework for the project.",
"type": "parameter",
"datatype": "choice",
"choices": [
{ {
"path": "UmbracoPackage.csproj" "displayName": ".NET 5.0",
} "description": "Target net5.0",
], "choice": "net5.0"
"sourceName": "UmbracoPackage", },
"preferNameDirectory": true, {
"symbols": { "displayName": ".NET 6.0",
"version": { "description": "Target net6.0",
"type": "parameter", "choice": "net6.0"
"datatype": "string",
"defaultValue": "9.4.0-rc",
"description": "The version of Umbraco to load using NuGet",
"replaces": "UMBRACO_VERSION_FROM_TEMPLATE"
},
"namespaceReplacer": {
"type": "generated",
"generator": "regex",
"dataType": "string",
"replaces": "UmbracoPackage",
"parameters": {
"source": "name",
"steps": [
{
"regex": "\\s",
"replacement": "_"
},
{
"regex": "-",
"replacement": "_"
},
{
"regex": "^[^a-zA-Z_]+",
"replacement": "_"
}
]
}
},
"msbuildReplacer": {
"type": "generated",
"generator": "regex",
"dataType": "string",
"replaces": "UmbracoPackageMsBuild",
"parameters": {
"source": "name",
"steps": [
{
"regex": "\\s",
"replacement": ""
},
{
"regex": "\\.",
"replacement": ""
},
{
"regex": "-",
"replacement": ""
},
{
"regex": "^[^a-zA-Z_]+",
"replacement": ""
}
]
}
},
"Framework": {
"type": "parameter",
"description": "The target framework for the project.",
"datatype": "choice",
"choices": [
{
"choice": "net5.0",
"description": "Target net5.0"
},
{
"choice": "net6.0",
"description": "Target net6.0"
}
],
"replaces": "net5.0",
"defaultValue": "net5.0"
} }
],
"defaultValue": "net5.0",
"replaces": "net5.0"
},
"UmbracoVersion": {
"displayName": "Umbraco version",
"description": "The version of Umbraco.Cms to add as PackageReference.",
"type": "parameter",
"datatype": "string",
"defaultValue": "9.4.0-rc",
"replaces": "UMBRACO_VERSION_FROM_TEMPLATE"
},
"namespaceReplacer": {
"type": "generated",
"generator": "regex",
"dataType": "string",
"parameters": {
"source": "name",
"steps": [
{
"regex": "\\s",
"replacement": "_"
},
{
"regex": "-",
"replacement": "_"
},
{
"regex": "^[^a-zA-Z_]+",
"replacement": "_"
}
]
},
"replaces": "UmbracoPackage"
},
"msbuildReplacer": {
"type": "generated",
"generator": "regex",
"dataType": "string",
"parameters": {
"source": "name",
"steps": [
{
"regex": "\\s",
"replacement": ""
},
{
"regex": "\\.",
"replacement": ""
},
{
"regex": "-",
"replacement": ""
},
{
"regex": "^[^a-zA-Z_]+",
"replacement": ""
}
]
},
"replaces": "UmbracoPackageMsBuild"
} }
},
"primaryOutputs": [
{
"path": "UmbracoPackage.csproj"
}
]
} }

View File

@@ -1,2 +1,5 @@
{ {
"name": "UmbracoPackage",
"version": "",
"allowPackageTelemetry": true
} }

View File

@@ -12,8 +12,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Umbraco.Cms.Web.Website" Version="UMBRACO_VERSION_FROM_TEMPLATE"/> <PackageReference Include="Umbraco.Cms.Web.Website" Version="UMBRACO_VERSION_FROM_TEMPLATE" />
<PackageReference Include="Umbraco.Cms.Web.BackOffice" Version="UMBRACO_VERSION_FROM_TEMPLATE"/> <PackageReference Include="Umbraco.Cms.Web.BackOffice" Version="UMBRACO_VERSION_FROM_TEMPLATE" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -22,7 +22,7 @@
<CopyToPublishDirectory>Always</CopyToPublishDirectory> <CopyToPublishDirectory>Always</CopyToPublishDirectory>
</Content> </Content>
<None Include="build\**\*.*"> <None Include="build\**\*.*">
<Pack>True</Pack> <Pack>true</Pack>
<PackagePath>buildTransitive</PackagePath> <PackagePath>buildTransitive</PackagePath>
</None> </None>
</ItemGroup> </ItemGroup>

View File

@@ -9,11 +9,7 @@
<UmbracoPackageMsBuildContentFiles Include="$(UmbracoPackageMsBuildContentFilesPath)" /> <UmbracoPackageMsBuildContentFiles Include="$(UmbracoPackageMsBuildContentFilesPath)" />
</ItemGroup> </ItemGroup>
<Message Text="Copying UmbracoPackage files: $(UmbracoPackageMsBuildContentFilesPath) - #@(UmbracoPackageMsBuildContentFiles->Count()) files" Importance="high" /> <Message Text="Copying UmbracoPackage files: $(UmbracoPackageMsBuildContentFilesPath) - #@(UmbracoPackageMsBuildContentFiles->Count()) files" Importance="high" />
<Copy <Copy SourceFiles="@(UmbracoPackageMsBuildContentFiles)" DestinationFiles="@(UmbracoPackageMsBuildContentFiles->'$(MSBuildProjectDirectory)\App_Plugins\UmbracoPackage\%(RecursiveDir)%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
SourceFiles="@(UmbracoPackageMsBuildContentFiles)"
DestinationFiles="@(UmbracoPackageMsBuildContentFiles->'$(MSBuildProjectDirectory)\App_Plugins\UmbracoPackage\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true" />
</Target> </Target>
<Target Name="ClearUmbracoPackageMsBuildAssets" BeforeTargets="Clean"> <Target Name="ClearUmbracoPackageMsBuildAssets" BeforeTargets="Clean">

View File

@@ -464,9 +464,6 @@ $RECYCLE.BIN/
# Umbraco log files # Umbraco log files
**/umbraco/Logs/ **/umbraco/Logs/
# Dont commit files that are generated and cached from the default ImageSharp location
**/umbraco/mediacache/
# Umbraco backoffice language files # Umbraco backoffice language files
# Nuget package Umbraco.Cms.StaticAssets will copy them in during dotnet build # Nuget package Umbraco.Cms.StaticAssets will copy them in during dotnet build
# Customize langguage files in /config/lang/{language}.user.xml # Customize langguage files in /config/lang/{language}.user.xml

View File

@@ -1,47 +1,55 @@
{ {
"$schema": "http://json.schemastore.org/dotnetcli.host", "$schema": "http://json.schemastore.org/dotnetcli.host",
"symbolInfo": { "symbolInfo": {
"PackageTestSiteName": { "Framework": {
"longName": "PackageTestSiteName", "longName": "Framework",
"shortName": "p" "shortName": "F"
},
"UseSqlCe": {
"longName": "SqlCe",
"shortName": "ce"
},
"SkipRestore": {
"longName": "no-restore",
"shortName": ""
},
"FriendlyName": {
"longName": "friendly-name",
"shortName": ""
},
"Email": {
"longName": "email",
"shortName": ""
},
"Password": {
"longName": "password",
"shortName": ""
},
"ConnectionString":{
"longName": "connection-string",
"shortName": ""
},
"NoNodesViewPath":{
"longName": "no-nodes-view-path",
"shortName": ""
},
"UseHttpsRedirect": {
"longName": "use-https-redirect",
"shortName": ""
}
}, },
"usageExamples": [ "UmbracoVersion": {
"dotnet new umbraco -n MyNewProject", "longName": "version",
"dotnet new umbraco -n MyNewProjectWithCE -ce", "shortName": "v"
"dotnet new umbraco -n MyNewProject --no-restore", },
"dotnet new umbraco -n MyNewProject --friendly-name \"Friendly User\" --email user@email.com --password password1234 --connection-string \"Server=ConnectionStringHere\"" "UseHttpsRedirect": {
] "longName": "use-https-redirect",
"shortName": ""
},
"UseSqlCe": {
"longName": "SqlCe",
"shortName": "ce"
},
"SkipRestore": {
"longName": "no-restore",
"shortName": ""
},
"UnattendedUserName": {
"longName": "friendly-name",
"shortName": ""
},
"UnattendedUserEmail": {
"longName": "email",
"shortName": ""
},
"UnattendedUserPassword": {
"longName": "password",
"shortName": ""
},
"ConnectionString": {
"longName": "connection-string",
"shortName": ""
},
"NoNodesViewPath": {
"longName": "no-nodes-view-path",
"shortName": ""
},
"PackageProjectName": {
"longName": "PackageTestSiteName",
"shortName": "p"
}
},
"usageExamples": [
"dotnet new umbraco -n MyNewProject",
"dotnet new umbraco -n MyNewProjectUsingSqlCE -ce",
"dotnet new umbraco -n MyNewProject --no-restore",
"dotnet new umbraco -n MyNewProject --friendly-name \"Friendly Admin User\" --email admin@example.com --password password1234 --connection-string \"Server=ConnectionStringHere\""
]
} }

View File

@@ -1,74 +1,51 @@
{ {
"$schema": "http://json.schemastore.org/vs-2017.3.host", "$schema": "http://json.schemastore.org/vs-2017.3.host",
"order" : 0, "order": 0,
"icon": "../../icon.png", "icon": "../../icon.png",
"description": { "description": {
"id": "UmbracoProject", "id": "UmbracoProject",
"text": "Umbraco Web Application - An empty Umbraco CMS web application" "text": "Umbraco Web Application - An empty Umbraco CMS web application"
},
"symbolInfo": [
{
"id": "UmbracoVersion",
"isVisible": "true"
}, },
"symbolInfo": [ {
{ "id": "UseHttpsRedirect",
"id": "UseSqlCe", "isVisible": "true"
"name": { },
"text": "Use Sql Compact Edition (SqlCE)" {
}, "id": "UseSqlCe",
"isVisible": "true" "isVisible": "true"
}, },
{ {
"id": "SkipRestore", "id": "SkipRestore",
"name": { "isVisible": "true"
"text": "Skips the automatic NuGet restore of the project on create" },
}, {
"isVisible": "true" "id": "UnattendedUserName",
}, "isVisible": "true"
{ },
"id": "PackageTestSiteName", {
"name": { "id": "UnattendedUserEmail",
"text": "Optional: Specify the name of a package that this should be a test site for" "isVisible": "true"
}, },
"isVisible": "true" {
}, "id": "UnattendedUserPassword",
{ "isVisible": "true"
"id": "FriendlyName", },
"name": { {
"text": "Optional: The friendly name of the user for Umbraco login when using Unattended install" "id": "ConnectionString",
}, "isVisible": "true"
"isVisible": "true" },
}, {
{ "id": "NoNodesViewPath",
"id": "Email", "isVisible": "true"
"name": { },
"text": "Optional: Email to use for Umbraco login when using Unattended install" {
}, "id": "PackageProjectName",
"isVisible": "true" "isVisible": "true"
}, }
{ ]
"id": "Password",
"name": {
"text": "Optional: Password to use for Umbraco login when using Unattended install"
},
"isVisible": "true"
},
{
"id": "ConnectionString",
"name": {
"text": "Optional: Database connection string when using Unattended install"
},
"isVisible": "true"
},
{
"id": "NoNodesViewPath",
"name": {
"text": "Optional: Path to a custom view presented with the Umbraco installation contains no published content"
},
"isVisible": "true"
},
{
"id": "UseHttpsRedirect",
"name": {
"text": "Optional: Adds code to Startup.cs to redirect HTTP to HTTPS and enables the UseHttps setting."
},
"isVisible": "true"
}
]
} }

View File

@@ -1,304 +1,326 @@
{ {
"$schema": "http://json.schemastore.org/template", "$schema": "http://json.schemastore.org/template",
"author": "Umbraco HQ", "author": "Umbraco HQ",
"description": "An empty Umbraco Project ready to get started", "classifications": [
"classifications": [ "Web", "CMS", "Umbraco"], "Web",
"groupIdentity": "Umbraco.Templates.UmbracoProject", "CMS",
"identity": "Umbraco.Templates.UmbracoProject.CSharp", "Umbraco"
"name": "Umbraco Project", ],
"shortName": "umbraco", "name": "Umbraco Project",
"defaultName": "UmbracoProject1", "description": "An empty Umbraco project ready to get started",
"preferNameDirectory": true, "groupIdentity": "Umbraco.Templates.UmbracoProject",
"tags": { "identity": "Umbraco.Templates.UmbracoProject.CSharp",
"language": "C#", "shortName": "umbraco",
"type": "project" "tags": {
"language": "C#",
"type": "project"
},
"sourceName": "UmbracoProject",
"defaultName": "UmbracoProject1",
"preferNameDirectory": true,
"symbols": {
"Framework": {
"displayName": "Framework",
"description": "The target framework for the project.",
"type": "parameter",
"datatype": "choice",
"choices": [
{
"displayName": ".NET 5.0",
"description": "Target net5.0",
"choice": "net5.0"
},
{
"displayName": ".NET 6.0",
"description": "Target net6.0",
"choice": "net6.0"
}
],
"defaultValue": "net5.0",
"replaces": "net5.0"
}, },
"primaryOutputs": [ "UmbracoVersion": {
{ "displayName": "Umbraco version",
"path": "UmbracoProject.csproj" "description": "The version of Umbraco.Cms to add as PackageReference.",
} "type": "parameter",
], "datatype": "string",
"postActions": [ "defaultValue": "9.4.0-rc",
{ "replaces": "UMBRACO_VERSION_FROM_TEMPLATE"
"condition": "(!SkipRestore)", },
"description": "Restore NuGet packages required by this project", "UseHttpsRedirect": {
"manualInstructions": [{ "displayName": "Use HTTPS redirect",
"text": "Run 'dotnet restore'" "description": "Adds code to Startup.cs to redirect HTTP to HTTPS and enables the UseHttps setting.",
}], "type": "parameter",
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025", "datatype": "bool",
"continueOnError": true "defaultValue": "false"
} },
], "UseSqlCe": {
"sourceName": "UmbracoProject", "displayName": "Add dependencies to use SQL CE database provider",
"symbols": { "description": "Adds the required dependencies to use SQL Compact Edition as database provider (Windows only).",
"namespaceReplacer": { "type": "parameter",
"type": "generated", "datatype": "bool",
"generator": "regex", "defaultValue": "false"
"dataType": "string", },
"replaces": "Umbraco.Cms.Web.UI", "SkipRestore": {
"parameters": { "displayName": "Skip restore",
"source": "name", "description": "If specified, skips the automatic restore of the project on create.",
"steps": [ "type": "parameter",
{ "datatype": "bool",
"regex": "\\s", "defaultValue": "false"
"replacement": "_" },
}, "UnattendedUserName": {
{ "displayName": "Unattended user name",
"regex": "-", "description": "Used to specify the name of the default admin user when using unattended install (stored as plain text).",
"replacement": "_" "type": "parameter",
}, "datatype": "string",
{ "defaultValue": ""
"regex": "^[^a-zA-Z_]+", },
"replacement": "_" "UnattendedUserNameReplacer": {
} "type": "generated",
] "generator": "regex",
} "dataType": "string",
}, "parameters": {
"version": { "source": "UnattendedUserName",
"type": "parameter", "steps": [
"datatype": "string", {
"defaultValue": "9.4.0-rc", "regex": "\\\\",
"description": "The version of Umbraco to load using NuGet", "replacement": "\\\\"
"replaces": "UMBRACO_VERSION_FROM_TEMPLATE" },
}, {
"PackageTestSiteName": { "regex": "\\\"",
"type": "parameter", "replacement": "\\\""
"datatype":"text", },
"defaultValue": "", {
"replaces":"PackageTestSiteName", "regex": "\\\n",
"description": "The name of the package this should be a test site for (Default: '')" "replacement": "\\\n"
}, },
"UseSqlCe":{ {
"type": "parameter", "regex": "\\\t",
"datatype":"bool", "replacement": "\\\t"
"defaultValue": "false", }
"description": "Adds the required dependencies to use SqlCE (Windows only) (Default: false)" ]
}, },
"Framework": { "replaces": "UNATTENDED_USER_NAME_FROM_TEMPLATE"
"type": "parameter", },
"description": "The target framework for the project", "UnattendedUserEmail": {
"datatype": "choice", "displayName": "Unattended user email",
"choices": [ "description": "Used to specify the email of the default admin user when using unattended install (stored as plain text).",
{ "type": "parameter",
"choice": "net5.0", "datatype": "string",
"description": "Target net5.0" "defaultValue": ""
}, },
{ "UnattendedUserEmailReplacer": {
"choice": "net6.0", "type": "generated",
"description": "Target net6.0" "generator": "regex",
} "dataType": "string",
], "parameters": {
"replaces": "net5.0", "source": "UnattendedUserEmail",
"defaultValue": "net5.0" "steps": [
}, {
"SkipRestore": { "regex": "\\\\",
"type": "parameter", "replacement": "\\\\"
"datatype": "bool", },
"description": "If specified, skips the automatic restore of the project on create", {
"defaultValue": "false" "regex": "\\\"",
}, "replacement": "\\\""
"HttpPort": { },
"type": "generated", {
"generator": "port", "regex": "\\\n",
"replaces": "HTTP_PORT_FROM_TEMPLATE", "replacement": "\\\n"
"parameters": { },
"high": 65535, {
"low": 1024, "regex": "\\\t",
"fallback": 5000 "replacement": "\\\t"
} }
}, ]
"HttpsPort": { },
"type": "generated", "replaces": "UNATTENDED_USER_EMAIL_FROM_TEMPLATE"
"generator": "port", },
"replaces": "HTTPS_PORT_FROM_TEMPLATE", "UnattendedUserPassword": {
"parameters": { "displayName": "Unattended user password",
"low": 44300, "description": "Used to specify the password of the default admin user when using unattended install (stored as plain text).",
"high": 44399, "type": "parameter",
"fallback": 5001 "datatype": "string",
} "defaultValue": ""
}, },
"FriendlyName":{ "UnattendedUserPasswordReplacer": {
"type": "parameter", "type": "generated",
"datatype":"text", "generator": "regex",
"description": "The friendly name of the user for Umbraco login when using Unattended install (Without installer wizard UI)", "dataType": "string",
"defaultValue": "" "parameters": {
}, "source": "UnattendedUserPassword",
"FriendlyNameReplaced":{ "steps": [
"type": "generated", {
"generator": "regex", "regex": "\\\\",
"dataType": "string", "replacement": "\\\\"
"replaces": "FRIENDLY_NAME_FROM_TEMPLATE", },
"parameters": { {
"source": "FriendlyName", "regex": "\\\"",
"steps": [ "replacement": "\\\""
{ },
"regex": "\\\\", {
"replacement": "\\\\" "regex": "\\\n",
}, "replacement": "\\\n"
{ },
"regex": "\\\"", {
"replacement": "\\\"" "regex": "\\\t",
}, "replacement": "\\\t"
{ }
"regex": "\\\n", ]
"replacement": "\\\n" },
}, "replaces": "UNATTENDED_USER_PASSWORD_FROM_TEMPLATE"
{ },
"regex": "\\\t", "ConnectionString": {
"replacement": "\\\t" "displayName": "Connection string",
} "description": "Database connection string used by Umbraco.",
] "type": "parameter",
} "datatype": "string",
}, "defaultValue": ""
"Email":{ },
"type": "parameter", "ConnectionStringReplacer": {
"datatype":"text", "type": "generated",
"description": "Email to use for Umbraco login when using Unattended install (Without installer wizard UI)", "generator": "regex",
"defaultValue": "" "dataType": "string",
}, "parameters": {
"EmailReplaced":{ "source": "ConnectionString",
"type": "generated", "steps": [
"generator": "regex", {
"dataType": "string", "regex": "\\\\",
"replaces": "EMAIL_FROM_TEMPLATE", "replacement": "\\\\"
"parameters": { },
"source": "Email", {
"steps": [ "regex": "\\\"",
{ "replacement": "\\\""
"regex": "\\\\", },
"replacement": "\\\\" {
}, "regex": "\\\n",
{ "replacement": "\\\n"
"regex": "\\\"", },
"replacement": "\\\"" {
}, "regex": "\\\t",
{ "replacement": "\\\t"
"regex": "\\\n", }
"replacement": "\\\n" ]
}, },
{ "replaces": "CONNECTION_STRING_FROM_TEMPLATE"
"regex": "\\\t", },
"replacement": "\\\t" "HasConnectionString": {
} "type": "computed",
] "value": "(ConnectionString != \"\")"
} },
}, "UsingUnattenedInstall": {
"Password":{ "type": "computed",
"type": "parameter", "value": "(UnattendedUserName != \"\" && UnattendedUserEmail != \"\" && UnattendedUserPassword != \"\" && ConnectionString != \"\")"
"datatype":"text", },
"description": "Password to use for Umbraco login when using Unattended install (Without installer wizard UI)", "NoNodesViewPath": {
"defaultValue": "" "displayName": "No nodes view path",
}, "description": "Path to a custom view presented with the Umbraco installation contains no published content",
"PasswordReplaced":{ "type": "parameter",
"type": "generated", "datatype": "string",
"generator": "regex", "defaultValue": ""
"dataType": "string", },
"replaces": "PASSWORD_FROM_TEMPLATE", "NoNodesViewPathReplacer": {
"parameters": { "type": "generated",
"source": "Password", "generator": "regex",
"steps": [ "dataType": "string",
{ "parameters": {
"regex": "\\\\", "source": "NoNodesViewPath",
"replacement": "\\\\" "steps": [
}, {
{ "regex": "\\\\",
"regex": "\\\"", "replacement": "\\\\"
"replacement": "\\\"" },
}, {
{ "regex": "\\\"",
"regex": "\\\n", "replacement": "\\\""
"replacement": "\\\n" },
}, {
{ "regex": "\\\n",
"regex": "\\\t", "replacement": "\\\n"
"replacement": "\\\t" },
} {
] "regex": "\\\t",
} "replacement": "\\\t"
}, }
"ConnectionString":{ ]
"type": "parameter", },
"datatype":"text", "replaces": "NO_NODES_VIEW_PATH_FROM_TEMPLATE"
"description": "Database connection string when using Unattended install (Without installer wizard UI)", },
"defaultValue": "" "HasNoNodesViewPath": {
}, "type": "computed",
"ConnectionStringReplaced":{ "value": "(NoNodesViewPath != \"\")"
"type": "generated", },
"generator": "regex", "PackageProjectName": {
"dataType": "string", "displayName": "Umbraco package project name",
"replaces": "CONNECTION_FROM_TEMPLATE", "description": "The name of the package project this should be a test site for.",
"parameters": { "type": "parameter",
"source": "ConnectionString", "datatype": "string",
"steps": [ "defaultValue": "",
{ "replaces": "PACKAGE_PROJECT_NAME_FROM_TEMPLATE"
"regex": "\\\\", },
"replacement": "\\\\" "NamespaceReplacer": {
}, "type": "generated",
{ "generator": "regex",
"regex": "\\\"", "dataType": "string",
"replacement": "\\\"" "parameters": {
}, "source": "name",
{ "steps": [
"regex": "\\\n", {
"replacement": "\\\n" "regex": "\\s",
}, "replacement": "_"
{ },
"regex": "\\\t", {
"replacement": "\\\t" "regex": "-",
} "replacement": "_"
] },
} {
}, "regex": "^[^a-zA-Z_]+",
"NoNodesViewPath":{ "replacement": "_"
"type": "parameter", }
"datatype":"text", ]
"description": "Path to a custom view presented with the Umbraco installation contains no published content", },
"defaultValue": "" "replaces": "Umbraco.Cms.Web.UI"
}, },
"NoNodesViewPathReplaced":{ "HttpPort": {
"type": "generated", "type": "generated",
"generator": "regex", "generator": "port",
"dataType": "string", "parameters": {
"replaces": "NO_NODES_VIEW_PATH_FROM_TEMPLATE", "fallback": 5000
"parameters": { },
"source": "NoNodesViewPath", "replaces": "HTTP_PORT_FROM_TEMPLATE"
"steps": [ },
{ "HttpsPort": {
"regex": "\\\\", "type": "generated",
"replacement": "\\\\" "generator": "port",
}, "parameters": {
{ "low": 44300,
"regex": "\\\"", "high": 44399,
"replacement": "\\\"" "fallback": 5001
}, },
{ "replaces": "HTTPS_PORT_FROM_TEMPLATE"
"regex": "\\\n", },
"replacement": "\\\n" "TelemetryId": {
}, "type": "generated",
{ "generator": "guid",
"regex": "\\\t", "replaces": "TELEMETRYID_FROM_TEMPLATE"
"replacement": "\\\t"
}
]
}
},
"HasConnectionString":{
"type": "computed",
"value": "(ConnectionString != \"\")"
},
"HasNoNodesViewPath":{
"type": "computed",
"value": "(NoNodesViewPath != \"\")"
},
"UsingUnattenedInstall":{
"type": "computed",
"value": "(FriendlyName != \"\" && Email != \"\" && Password != \"\" && ConnectionString != \"\")"
},
"UseHttpsRedirect":{
"type": "parameter",
"datatype":"bool",
"defaultValue": "false",
"description": "Adds code to Startup.cs to redirect HTTP to HTTPS and enables the UseHttps setting (Default: false)"
}
} }
},
"primaryOutputs": [
{
"path": "UmbracoProject.csproj"
}
],
"postActions": [
{
"condition": "(!SkipRestore)",
"description": "Restore NuGet packages required by this project",
"manualInstructions": [
{
"text": "Run 'dotnet restore'"
}
],
"actionId": "210D431B-A78B-4D2F-B762-4ED3E3EA9025",
"continueOnError": true
}
]
} }

View File

@@ -11,20 +11,15 @@
<PackageReference Include="Umbraco.SqlServerCE" Version="4.0.0.1" Condition="'$(UseSqlCe)' == 'true'" /> <PackageReference Include="Umbraco.SqlServerCE" Version="4.0.0.1" Condition="'$(UseSqlCe)' == 'true'" />
</ItemGroup> </ItemGroup>
<!-- Force windows to use ICU. Otherwise Windows 10 2019H1+ will do it, but older windows 10 and most if not all winodws servers will run NLS --> <!-- Force Windows to use ICU. Otherwise Windows 10 2019H1+ will do it, but older Windows 10 and most, if not all, Windows Server editions will run NLS -->
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" /> <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9" />
<RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2.0.9" Condition="$(RuntimeIdentifier.StartsWith('linux')) Or $(RuntimeIdentifier.StartsWith('win')) Or ('$(RuntimeIdentifier)' == '' And !$([MSBuild]::IsOSPlatform('osx')))" />
<RuntimeHostConfigurationOption
Condition="$(RuntimeIdentifier.StartsWith('linux')) Or $(RuntimeIdentifier.StartsWith('win')) Or ('$(RuntimeIdentifier)' == '' And !$([MSBuild]::IsOSPlatform('osx')))"
Include="System.Globalization.AppLocalIcu"
Value="68.2.0.9" />
</ItemGroup> </ItemGroup>
<Import Project="..\PackageTestSiteName\build\PackageTestSiteName.targets" Condition="'$(PackageTestSiteName)' != ''" /> <Import Project="..\PACKAGE_PROJECT_NAME_FROM_TEMPLATE\build\PACKAGE_PROJECT_NAME_FROM_TEMPLATE.targets" Condition="'$(PackageProjectName)' != ''" />
<ItemGroup Condition="'$(PackageProjectName)' != ''">
<ItemGroup Condition="'$(PackageTestSiteName)' != ''"> <ProjectReference Include="..\PACKAGE_PROJECT_NAME_FROM_TEMPLATE\PACKAGE_PROJECT_NAME_FROM_TEMPLATE.csproj" />
<ProjectReference Include="..\PackageTestSiteName\PackageTestSiteName.csproj" />
</ItemGroup> </ItemGroup>
<PropertyGroup> <PropertyGroup>

View File

@@ -1,5 +1,5 @@
{ {
"$schema" : "./umbraco/config/appsettings-schema.json", "$schema": "./umbraco/config/appsettings-schema.json",
"Serilog": { "Serilog": {
"MinimumLevel": { "MinimumLevel": {
"Default": "Information" "Default": "Information"
@@ -19,22 +19,22 @@
}, },
//#if (HasConnectionString) //#if (HasConnectionString)
"ConnectionStrings": { "ConnectionStrings": {
"umbracoDbDSN": "CONNECTION_FROM_TEMPLATE" "umbracoDbDSN": "CONNECTION_STRING_FROM_TEMPLATE"
}, },
//#endif //#endif
"Umbraco": { "Umbraco": {
"CMS": { "CMS": {
"Content": {
"MacroErrors": "Throw"
},
//#if (UsingUnattenedInstall) //#if (UsingUnattenedInstall)
"Unattended": { "Unattended": {
"InstallUnattended": true, "InstallUnattended": true,
"UnattendedUserName": "FRIENDLY_NAME_FROM_TEMPLATE", "UnattendedUserName": "UNATTENDED_USER_NAME_FROM_TEMPLATE",
"UnattendedUserEmail": "EMAIL_FROM_TEMPLATE", "UnattendedUserEmail": "UNATTENDED_USER_EMAIL_FROM_TEMPLATE",
"UnattendedUserPassword": "PASSWORD_FROM_TEMPLATE" "UnattendedUserPassword": "UNATTENDED_USER_PASSWORD_FROM_TEMPLATE"
}, },
//#endif //#endif
"Content": {
"MacroErrors": "Throw"
},
"Global": { "Global": {
"Smtp": { "Smtp": {
"From": "your@email.here", "From": "your@email.here",
@@ -51,4 +51,4 @@
} }
} }
} }
} }

View File

@@ -1,5 +1,5 @@
{ {
"$schema" : "./umbraco/config/appsettings-schema.json", "$schema": "./umbraco/config/appsettings-schema.json",
"Serilog": { "Serilog": {
"MinimumLevel": { "MinimumLevel": {
"Default": "Information", "Default": "Information",
@@ -11,26 +11,19 @@
} }
}, },
"ConnectionStrings": { "ConnectionStrings": {
"umbracoDbDSN": "" "umbracoDbDSN": null
}, },
"Umbraco": { "Umbraco": {
"CMS": { "CMS": {
//#if (HasNoNodesViewPath || UseHttpsRedirect)
"Global": { "Global": {
"SanitizeTinyMce": true, "Id": "TELEMETRYID_FROM_TEMPLATE",
//#if (!HasNoNodesViewPath && UseHttpsRedirect) //#if (UseHttpsRedirect)
"UseHttps": true
//#elseif (UseHttpsRedirect)
"UseHttps": true, "UseHttps": true,
//#endif //#endif
//#if (HasNoNodesViewPath) //#if (HasNoNodesViewPath)
"NoNodesViewPath": "NO_NODES_VIEW_PATH_FROM_TEMPLATE" "NoNodesViewPath": "NO_NODES_VIEW_PATH_FROM_TEMPLATE",
//#endif //#endif
"SanitizeTinyMce": true
},
//#endif
"Hosting": {
"Debug": false
}, },
"Content": { "Content": {
"ContentVersionCleanupPolicy": { "ContentVersionCleanupPolicy": {