Started adding plugins

This commit is contained in:
the1mason 2025-04-23 09:20:12 +05:00
parent 04343835cd
commit f2d24a1545
29 changed files with 1148 additions and 51 deletions

View File

@ -9,11 +9,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastBlog.Web", "src\FastBlo
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastBlog.Core", "src\FastBlog.Core\FastBlog.Core.csproj", "{B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastBlog.Core", "src\FastBlog.Core\FastBlog.Core.csproj", "{B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}"
EndProject EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{240F51ED-532D-4980-8091-D9250EC7E7BD}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "plugins", "plugins", "{5036CE06-EB58-41ED-9A0B-58372A72BEC7}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastBlog.PluginBase", "lib\FastBlog.PluginBase\FastBlog.PluginBase.csproj", "{79C5D3D1-2ACB-4640-B8B0-A2B67514D041}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugin1", "plugins\Plugin1\Plugin1.csproj", "{79DEDFD2-BEE7-48C1-B6D5-89A6C9A3EC05}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastBlog.PluginLoader", "src\FastBlog.PluginLoader\FastBlog.PluginLoader.csproj", "{55384AAF-FCC5-4014-BABE-855575436217}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugin2", "plugins\Plugin2\Plugin2.csproj", "{743460B8-3E15-41E9-A3DE-E6789AF682B5}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -32,19 +32,19 @@ Global
{B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}.Debug|Any CPU.Build.0 = Debug|Any CPU {B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}.Release|Any CPU.ActiveCfg = Release|Any CPU {B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}.Release|Any CPU.Build.0 = Release|Any CPU {B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC}.Release|Any CPU.Build.0 = Release|Any CPU
{79C5D3D1-2ACB-4640-B8B0-A2B67514D041}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {79DEDFD2-BEE7-48C1-B6D5-89A6C9A3EC05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{79C5D3D1-2ACB-4640-B8B0-A2B67514D041}.Debug|Any CPU.Build.0 = Debug|Any CPU {79DEDFD2-BEE7-48C1-B6D5-89A6C9A3EC05}.Debug|Any CPU.Build.0 = Debug|Any CPU
{79C5D3D1-2ACB-4640-B8B0-A2B67514D041}.Release|Any CPU.ActiveCfg = Release|Any CPU {79DEDFD2-BEE7-48C1-B6D5-89A6C9A3EC05}.Release|Any CPU.ActiveCfg = Release|Any CPU
{79C5D3D1-2ACB-4640-B8B0-A2B67514D041}.Release|Any CPU.Build.0 = Release|Any CPU {79DEDFD2-BEE7-48C1-B6D5-89A6C9A3EC05}.Release|Any CPU.Build.0 = Release|Any CPU
{55384AAF-FCC5-4014-BABE-855575436217}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {743460B8-3E15-41E9-A3DE-E6789AF682B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{55384AAF-FCC5-4014-BABE-855575436217}.Debug|Any CPU.Build.0 = Debug|Any CPU {743460B8-3E15-41E9-A3DE-E6789AF682B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{55384AAF-FCC5-4014-BABE-855575436217}.Release|Any CPU.ActiveCfg = Release|Any CPU {743460B8-3E15-41E9-A3DE-E6789AF682B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{55384AAF-FCC5-4014-BABE-855575436217}.Release|Any CPU.Build.0 = Release|Any CPU {743460B8-3E15-41E9-A3DE-E6789AF682B5}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(NestedProjects) = preSolution GlobalSection(NestedProjects) = preSolution
{C9A19395-1E93-488F-AD10-2C7D2DB78EB0} = {D7A1C18D-CC03-4704-B5B7-2F8B1A04E279} {C9A19395-1E93-488F-AD10-2C7D2DB78EB0} = {D7A1C18D-CC03-4704-B5B7-2F8B1A04E279}
{B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC} = {D7A1C18D-CC03-4704-B5B7-2F8B1A04E279} {B8CDA182-8097-4EF5-8EE2-CB73AF4B58AC} = {D7A1C18D-CC03-4704-B5B7-2F8B1A04E279}
{79C5D3D1-2ACB-4640-B8B0-A2B67514D041} = {240F51ED-532D-4980-8091-D9250EC7E7BD} {79DEDFD2-BEE7-48C1-B6D5-89A6C9A3EC05} = {5036CE06-EB58-41ED-9A0B-58372A72BEC7}
{55384AAF-FCC5-4014-BABE-855575436217} = {D7A1C18D-CC03-4704-B5B7-2F8B1A04E279} {743460B8-3E15-41E9-A3DE-E6789AF682B5} = {5036CE06-EB58-41ED-9A0B-58372A72BEC7}
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@ -1,9 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,19 @@
using Microsoft.Extensions.DependencyInjection;
using RainCrab.Plugins.AspNet;
using TestLib.Writer;
namespace Plugin1;
public class Plugin1 : IWebPlugin
{
public Task ConfigureAsync(WebPluginLoadContext loadContext)
{
loadContext.ApplicationBuilder.Services.AddSingleton<IWriter, Writer>();
return Task.CompletedTask;
}
public Task ShutdownAsync(WebPluginLoadContext loadContext)
{
return Task.CompletedTask;
}
}

View File

@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableDynamicLoading>true</EnableDynamicLoading>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="RainCrab.Plugins.AspNet" Version="0.1.11">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="TestLib.Writer" Version="1.0.0" />
</ItemGroup>
<ItemGroup>
<None Update="plugin1.manifest.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Plugin1.runtimeconfig.template.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>

View File

@ -0,0 +1,7 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"../."
]
}
}

View File

@ -0,0 +1,6 @@
{
"Id": "plugin1",
"Version": "1.0.0",
"Assembly": "Plugin1.dll",
"Name": "Plugin1"
}

View File

@ -0,0 +1,16 @@
using Microsoft.AspNetCore.Mvc;
using TestLib.Writer;
namespace Plugin2.Controllers;
[Route("Plugin2")]
public class Plugin2Controller : Controller
{
public sealed record Plugin2Model(string Result);
[Route("Index")]
public IActionResult Index()
{
return View(new Plugin2Model("123"));
}
}

View File

@ -0,0 +1,19 @@
using Microsoft.Extensions.DependencyInjection;
using RainCrab.Plugins.AspNet;
namespace Plugin2;
public class Plugin2 : IWebPlugin
{
public Task ConfigureAsync(WebPluginLoadContext loadContext)
{
loadContext.ApplicationBuilder.Services.AddControllersWithViews()
.AddApplicationPart(typeof(Plugin2).Assembly);
return Task.CompletedTask;
}
public Task ShutdownAsync(WebPluginLoadContext loadContext)
{
return Task.CompletedTask;
}
}

View File

@ -0,0 +1,42 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>g
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableDynamicLoading>true</EnableDynamicLoading>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="RainCrab.Plugins.AspNet" Version="0.1.11">
<ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>
<PackageReference Include="TestLib.Writer" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App">
</FrameworkReference>
</ItemGroup>
<ItemGroup>
<None Update="plugin2.manifest.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="Plugin2.runtimeconfig.template.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Views\**\*.cshtml" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Views\Example\Index.cshtml">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</EmbeddedResource>
</ItemGroup>
</Project>

View File

@ -0,0 +1,7 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"../."
]
}
}

View File

@ -0,0 +1,3 @@
@model Plugin2.Controllers.Plugin2Controller.Plugin2Model;
<h1>@Model.Result</h1>

View File

@ -0,0 +1,6 @@
{
"Id": "plugin2",
"Version": "1.0.0",
"Assembly": "Plugin2.dll",
"Name": "Plugin2"
}

View File

@ -6,18 +6,6 @@
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.Extensions.Caching.Memory">
<HintPath>..\..\..\..\..\..\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.4\Microsoft.Extensions.Caching.Memory.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Abstractions">
<HintPath>..\..\..\..\..\..\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.4\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions">
<HintPath>..\..\..\..\..\..\Program Files\dotnet\shared\Microsoft.AspNetCore.App\8.0.4\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="BCrypt.Net-Next" Version="4.0.3" /> <PackageReference Include="BCrypt.Net-Next" Version="4.0.3" />
<PackageReference Include="Dapper" Version="2.1.35" /> <PackageReference Include="Dapper" Version="2.1.35" />

View File

@ -1,6 +0,0 @@
namespace FastBlog.PluginLoader;
public class Class1
{
}

View File

@ -1,9 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

View File

@ -15,6 +15,7 @@
<PackageReference Include="Markdig" Version="0.37.0" /> <PackageReference Include="Markdig" Version="0.37.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.8" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="8.0.8" />
<PackageReference Include="Pek.Markdig.HighlightJs" Version="0.5.1" /> <PackageReference Include="Pek.Markdig.HighlightJs" Version="0.5.1" />
<PackageReference Include="RainCrab.Plugins.AspNet" Version="0.1.11" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -22,4 +23,23 @@
<Folder Include="wwwroot\static\" /> <Folder Include="wwwroot\static\" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Content Include="Plugins\**\*">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Remove="Plugins\**" />
</ItemGroup>
<ItemGroup>
<Compile Remove="Plugins\**" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Remove="Plugins\**" />
</ItemGroup>
<ItemGroup>
<None Remove="Plugins\**" />
</ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,439 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"Plugin1/1.0.0": {
"dependencies": {
"RainCrab.Plugins.AspNet": "0.1.11",
"TestLib.Writer": "1.0.0"
},
"runtime": {
"Plugin1.dll": {}
}
},
"Microsoft.AspNetCore.Hosting/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0",
"Microsoft.AspNetCore.Http": "2.3.0",
"Microsoft.AspNetCore.Http.Extensions": "2.3.0",
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.1",
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "8.0.1",
"Microsoft.Extensions.Logging": "8.0.1",
"Microsoft.Extensions.Logging.Debug": "8.0.1",
"Microsoft.Extensions.Options": "8.0.2",
"System.Diagnostics.DiagnosticSource": "8.0.1",
"System.Reflection.Metadata": "8.0.1"
}
},
"Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0",
"Microsoft.AspNetCore.Http.Abstractions": "2.3.0",
"Microsoft.Extensions.Hosting.Abstractions": "8.0.1"
}
},
"Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.3.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.AspNetCore.Http/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.3.0",
"Microsoft.AspNetCore.WebUtilities": "2.3.0",
"Microsoft.Extensions.ObjectPool": "8.0.11",
"Microsoft.Extensions.Options": "8.0.2",
"Microsoft.Net.Http.Headers": "2.3.0"
}
},
"Microsoft.AspNetCore.Http.Abstractions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.3.0",
"System.Text.Encodings.Web": "8.0.0"
}
},
"Microsoft.AspNetCore.Http.Extensions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.3.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Net.Http.Headers": "2.3.0",
"System.Buffers": "4.6.0"
}
},
"Microsoft.AspNetCore.Http.Features/2.3.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.AspNetCore.WebUtilities/2.3.0": {
"dependencies": {
"Microsoft.Net.Http.Headers": "2.3.0",
"System.Text.Encodings.Web": "8.0.0"
}
},
"Microsoft.Extensions.Configuration/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.DependencyInjection/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {},
"Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {},
"Microsoft.Extensions.Hosting.Abstractions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.Logging/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.Logging.Debug/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Logging": "8.0.1",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.ObjectPool/8.0.11": {},
"Microsoft.Extensions.Options/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Primitives/8.0.0": {},
"Microsoft.Net.Http.Headers/2.3.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0",
"System.Buffers": "4.6.0"
}
},
"RainCrab.Plugins.AspNet/0.1.11": {
"dependencies": {
"Microsoft.AspNetCore.Hosting": "2.3.0",
"RainCrab.Plugins.Base": "0.1.7"
}
},
"RainCrab.Plugins.Base/0.1.7": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
},
"System.Buffers/4.6.0": {},
"System.Diagnostics.DiagnosticSource/8.0.1": {},
"System.Reflection.Metadata/8.0.1": {},
"System.Text.Encodings.Web/8.0.0": {},
"TestLib.Writer/1.0.0": {
"runtime": {
"lib/net8.0/TestLib.Writer.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"Plugin1/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Hosting/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JI/AVsh5OIZu0l2LpuQVUEYKHyLgeXV9uPiGf/IfF3r5sXj/Zcb2tpyxdVMM7y91+V8AUk/ZfwmEkf7pivT8xQ==",
"path": "microsoft.aspnetcore.hosting/2.3.0",
"hashPath": "microsoft.aspnetcore.hosting.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==",
"path": "microsoft.aspnetcore.hosting.abstractions/2.3.0",
"hashPath": "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==",
"path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0",
"hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==",
"path": "microsoft.aspnetcore.http/2.3.0",
"hashPath": "microsoft.aspnetcore.http.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Abstractions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.3.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Extensions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==",
"path": "microsoft.aspnetcore.http.extensions/2.3.0",
"hashPath": "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==",
"path": "microsoft.aspnetcore.http.features/2.3.0",
"hashPath": "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.WebUtilities/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==",
"path": "microsoft.aspnetcore.webutilities/2.3.0",
"hashPath": "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
"path": "microsoft.extensions.configuration/8.0.0",
"hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"path": "microsoft.extensions.configuration.abstractions/8.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==",
"path": "microsoft.extensions.configuration.environmentvariables/8.0.0",
"hashPath": "microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==",
"path": "microsoft.extensions.configuration.fileextensions/8.0.1",
"hashPath": "microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==",
"path": "microsoft.extensions.dependencyinjection/8.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==",
"path": "microsoft.extensions.diagnostics.abstractions/8.0.1",
"hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
"path": "microsoft.extensions.fileproviders.abstractions/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==",
"path": "microsoft.extensions.fileproviders.physical/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==",
"path": "microsoft.extensions.filesystemglobbing/8.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting.Abstractions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==",
"path": "microsoft.extensions.hosting.abstractions/8.0.1",
"hashPath": "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==",
"path": "microsoft.extensions.logging/8.0.1",
"hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
"path": "microsoft.extensions.logging.abstractions/8.0.2",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Debug/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==",
"path": "microsoft.extensions.logging.debug/8.0.1",
"hashPath": "microsoft.extensions.logging.debug.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.ObjectPool/8.0.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==",
"path": "microsoft.extensions.objectpool/8.0.11",
"hashPath": "microsoft.extensions.objectpool.8.0.11.nupkg.sha512"
},
"Microsoft.Extensions.Options/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==",
"path": "microsoft.extensions.options/8.0.2",
"hashPath": "microsoft.extensions.options.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
"path": "microsoft.extensions.primitives/8.0.0",
"hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
},
"Microsoft.Net.Http.Headers/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==",
"path": "microsoft.net.http.headers/2.3.0",
"hashPath": "microsoft.net.http.headers.2.3.0.nupkg.sha512"
},
"RainCrab.Plugins.AspNet/0.1.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6o4oboIqWXIMEWyW5cVF8dCTLWImyuYjMOqOAWf7WaqdnaEgINZA2SaRQ6AqKvo1/SbVTD3H3n+grcRUAUnlIQ==",
"path": "raincrab.plugins.aspnet/0.1.11",
"hashPath": "raincrab.plugins.aspnet.0.1.11.nupkg.sha512"
},
"RainCrab.Plugins.Base/0.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NTQdJyPxDaKKcURU+c625yS+9R0TuNbefXv9TTQ3LhsF+4TCHko0kmn0IOw4HSMuTi+jwdt8tgz2xwl4sgZYoA==",
"path": "raincrab.plugins.base/0.1.7",
"hashPath": "raincrab.plugins.base.0.1.7.nupkg.sha512"
},
"System.Buffers/4.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==",
"path": "system.buffers/4.6.0",
"hashPath": "system.buffers.4.6.0.nupkg.sha512"
},
"System.Diagnostics.DiagnosticSource/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==",
"path": "system.diagnostics.diagnosticsource/8.0.1",
"hashPath": "system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512"
},
"System.Reflection.Metadata/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+4sz5vGHPlo+5NpAxf2IlABnqVvOHOxv17b4dONv4hVwyNeFAeBevT14DIn7X3YWQ+eQFYO3YeTBNCleAblOKA==",
"path": "system.reflection.metadata/8.0.1",
"hashPath": "system.reflection.metadata.8.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
"path": "system.text.encodings.web/8.0.0",
"hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
},
"TestLib.Writer/1.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+kzeprTBcatAmcrIwJYq8hsuOLlY5JItq1Ri56BmzhLTym9THDYIgrVTv1IMKMI8acDOiKQ0ZYcj1d82P6kceA==",
"path": "testlib.writer/1.0.0",
"hashPath": "testlib.writer.1.0.0.nupkg.sha512"
}
}
}

Binary file not shown.

View File

@ -0,0 +1,19 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"rollForward": "LatestMinor",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@ -0,0 +1,7 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"../."
]
}
}

Binary file not shown.

View File

@ -0,0 +1,6 @@
{
"Id": "plugin1",
"Version": "1.0.0",
"Assembly": "Plugin1.dll",
"Name": "Plugin1"
}

View File

@ -0,0 +1,439 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"Plugin2/1.0.0": {
"dependencies": {
"RainCrab.Plugins.AspNet": "0.1.11",
"TestLib.Writer": "2.0.0"
},
"runtime": {
"Plugin2.dll": {}
}
},
"Microsoft.AspNetCore.Hosting/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Hosting.Abstractions": "2.3.0",
"Microsoft.AspNetCore.Http": "2.3.0",
"Microsoft.AspNetCore.Http.Extensions": "2.3.0",
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "8.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "8.0.1",
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "8.0.1",
"Microsoft.Extensions.Logging": "8.0.1",
"Microsoft.Extensions.Logging.Debug": "8.0.1",
"Microsoft.Extensions.Options": "8.0.2",
"System.Diagnostics.DiagnosticSource": "8.0.1",
"System.Reflection.Metadata": "8.0.1"
}
},
"Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Hosting.Server.Abstractions": "2.3.0",
"Microsoft.AspNetCore.Http.Abstractions": "2.3.0",
"Microsoft.Extensions.Hosting.Abstractions": "8.0.1"
}
},
"Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.3.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.AspNetCore.Http/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.3.0",
"Microsoft.AspNetCore.WebUtilities": "2.3.0",
"Microsoft.Extensions.ObjectPool": "8.0.11",
"Microsoft.Extensions.Options": "8.0.2",
"Microsoft.Net.Http.Headers": "2.3.0"
}
},
"Microsoft.AspNetCore.Http.Abstractions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Features": "2.3.0",
"System.Text.Encodings.Web": "8.0.0"
}
},
"Microsoft.AspNetCore.Http.Extensions/2.3.0": {
"dependencies": {
"Microsoft.AspNetCore.Http.Abstractions": "2.3.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Net.Http.Headers": "2.3.0",
"System.Buffers": "4.6.0"
}
},
"Microsoft.AspNetCore.Http.Features/2.3.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.AspNetCore.WebUtilities/2.3.0": {
"dependencies": {
"Microsoft.Net.Http.Headers": "2.3.0",
"System.Text.Encodings.Web": "8.0.0"
}
},
"Microsoft.Extensions.Configuration/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration": "8.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileProviders.Physical": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.DependencyInjection/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {},
"Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "8.0.0",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {},
"Microsoft.Extensions.Hosting.Abstractions/8.0.1": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "8.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Diagnostics.Abstractions": "8.0.1",
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.Logging/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "8.0.1",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2",
"Microsoft.Extensions.Options": "8.0.2"
}
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.Logging.Debug/8.0.1": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Logging": "8.0.1",
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
},
"Microsoft.Extensions.ObjectPool/8.0.11": {},
"Microsoft.Extensions.Options/8.0.2": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2",
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.Primitives/8.0.0": {},
"Microsoft.Net.Http.Headers/2.3.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "8.0.0",
"System.Buffers": "4.6.0"
}
},
"RainCrab.Plugins.AspNet/0.1.11": {
"dependencies": {
"Microsoft.AspNetCore.Hosting": "2.3.0",
"RainCrab.Plugins.Base": "0.1.7"
}
},
"RainCrab.Plugins.Base/0.1.7": {
"dependencies": {
"Microsoft.Extensions.Logging.Abstractions": "8.0.2"
}
},
"System.Buffers/4.6.0": {},
"System.Diagnostics.DiagnosticSource/8.0.1": {},
"System.Reflection.Metadata/8.0.1": {},
"System.Text.Encodings.Web/8.0.0": {},
"TestLib.Writer/2.0.0": {
"runtime": {
"lib/net8.0/TestLib.Writer.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
}
}
},
"libraries": {
"Plugin2/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Microsoft.AspNetCore.Hosting/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JI/AVsh5OIZu0l2LpuQVUEYKHyLgeXV9uPiGf/IfF3r5sXj/Zcb2tpyxdVMM7y91+V8AUk/ZfwmEkf7pivT8xQ==",
"path": "microsoft.aspnetcore.hosting/2.3.0",
"hashPath": "microsoft.aspnetcore.hosting.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Hosting.Abstractions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4ivq53W2k6Nj4eez9wc81ytfGj6HR1NaZJCpOrvghJo9zHuQF57PLhPoQH5ItyCpHXnrN/y7yJDUm+TGYzrx0w==",
"path": "microsoft.aspnetcore.hosting.abstractions/2.3.0",
"hashPath": "microsoft.aspnetcore.hosting.abstractions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Hosting.Server.Abstractions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-F5iHx7odAbFKBV1DNPDkFFcVmD5Tk7rk+tYm3LMQxHEFFdjlg5QcYb5XhHAefl5YaaPeG6ad+/ck8kSG3/D6kw==",
"path": "microsoft.aspnetcore.hosting.server.abstractions/2.3.0",
"hashPath": "microsoft.aspnetcore.hosting.server.abstractions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-I9azEG2tZ4DDHAFgv+N38e6Yhttvf+QjE2j2UYyCACE7Swm5/0uoihCMWZ87oOZYeqiEFSxbsfpT71OYHe2tpw==",
"path": "microsoft.aspnetcore.http/2.3.0",
"hashPath": "microsoft.aspnetcore.http.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Abstractions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-39r9PPrjA6s0blyFv5qarckjNkaHRA5B+3b53ybuGGNTXEj1/DStQJ4NWjFL6QTRQpL9zt7nDyKxZdJOlcnq+Q==",
"path": "microsoft.aspnetcore.http.abstractions/2.3.0",
"hashPath": "microsoft.aspnetcore.http.abstractions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Extensions/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EY2u/wFF5jsYwGXXswfQWrSsFPmiXsniAlUWo3rv/MGYf99ZFsENDnZcQP6W3c/+xQmQXq0NauzQ7jyy+o1LDQ==",
"path": "microsoft.aspnetcore.http.extensions/2.3.0",
"hashPath": "microsoft.aspnetcore.http.extensions.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.Http.Features/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-f10WUgcsKqrkmnz6gt8HeZ7kyKjYN30PO7cSic1lPtH7paPtnQqXPOveul/SIPI43PhRD4trttg4ywnrEmmJpA==",
"path": "microsoft.aspnetcore.http.features/2.3.0",
"hashPath": "microsoft.aspnetcore.http.features.2.3.0.nupkg.sha512"
},
"Microsoft.AspNetCore.WebUtilities/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-trbXdWzoAEUVd0PE2yTopkz4kjZaAIA7xUWekd5uBw+7xE8Do/YOVTeb9d9koPTlbtZT539aESJjSLSqD8eYrQ==",
"path": "microsoft.aspnetcore.webutilities/2.3.0",
"hashPath": "microsoft.aspnetcore.webutilities.2.3.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0J/9YNXTMWSZP2p2+nvl8p71zpSwokZXZuJW+VjdErkegAnFdO1XlqtA62SJtgVYHdKu3uPxJHcMR/r35HwFBA==",
"path": "microsoft.extensions.configuration/8.0.0",
"hashPath": "microsoft.extensions.configuration.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3lE/iLSutpgX1CC0NOW70FJoGARRHbyKmG7dc0klnUZ9Dd9hS6N/POPWhKhMLCEuNN5nXEY5agmlFtH562vqhQ==",
"path": "microsoft.extensions.configuration.abstractions/8.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-plvZ0ZIpq+97gdPNNvhwvrEZ92kNml9hd1pe3idMA7svR0PztdzVLkoWLcRFgySYXUJc3kSM3Xw3mNFMo/bxRA==",
"path": "microsoft.extensions.configuration.environmentvariables/8.0.0",
"hashPath": "microsoft.extensions.configuration.environmentvariables.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EJzSNO9oaAXnTdtdNO6npPRsIIeZCBSNmdQ091VDO7fBiOtJAAeEq6dtrVXIi3ZyjC5XRSAtVvF8SzcneRHqKQ==",
"path": "microsoft.extensions.configuration.fileextensions/8.0.1",
"hashPath": "microsoft.extensions.configuration.fileextensions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BmANAnR5Xd4Oqw7yQ75xOAYODybZQRzdeNucg7kS5wWKd2PNnMdYtJ2Vciy0QLylRmv42DGl5+AFL9izA6F1Rw==",
"path": "microsoft.extensions.dependencyinjection/8.0.1",
"hashPath": "microsoft.extensions.dependencyinjection.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==",
"path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Diagnostics.Abstractions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-elH2vmwNmsXuKmUeMQ4YW9ldXiF+gSGDgg1vORksob5POnpaI6caj1Hu8zaYbEuibhqCoWg0YRWDazBY3zjBfg==",
"path": "microsoft.extensions.diagnostics.abstractions/8.0.1",
"hashPath": "microsoft.extensions.diagnostics.abstractions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZbaMlhJlpisjuWbvXr4LdAst/1XxH3vZ6A0BsgTphZ2L4PGuxRLz7Jr/S7mkAAnOn78Vu0fKhEgNF5JO3zfjqQ==",
"path": "microsoft.extensions.fileproviders.abstractions/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-UboiXxpPUpwulHvIAVE36Knq0VSHaAmfrFkegLyBZeaADuKezJ/AIXYAW8F5GBlGk/VaibN2k/Zn1ca8YAfVdA==",
"path": "microsoft.extensions.fileproviders.physical/8.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OK+670i7esqlQrPjdIKRbsyMCe9g5kSLpRRQGSr4Q58AOYEe/hCnfLZprh7viNisSUUQZmMrbbuDaIrP+V1ebQ==",
"path": "microsoft.extensions.filesystemglobbing/8.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.8.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting.Abstractions/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nHwq9aPBdBPYXPti6wYEEfgXddfBrYC+CQLn+qISiwQq5tpfaqDZSKOJNxoe9rfQxGf1c+2wC/qWFe1QYJPYqw==",
"path": "microsoft.extensions.hosting.abstractions/8.0.1",
"hashPath": "microsoft.extensions.hosting.abstractions.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-4x+pzsQEbqxhNf1QYRr5TDkLP9UsLT3A6MdRKDDEgrW7h1ljiEPgTNhKYUhNCCAaVpQECVQ+onA91PTPnIp6Lw==",
"path": "microsoft.extensions.logging/8.0.1",
"hashPath": "microsoft.extensions.logging.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==",
"path": "microsoft.extensions.logging.abstractions/8.0.2",
"hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Debug/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-B8hqNuYudC2RB+L/DI33uO4rf5by41fZVdcVL2oZj0UyoAZqnwTwYHp1KafoH4nkl1/23piNeybFFASaV2HkFg==",
"path": "microsoft.extensions.logging.debug/8.0.1",
"hashPath": "microsoft.extensions.logging.debug.8.0.1.nupkg.sha512"
},
"Microsoft.Extensions.ObjectPool/8.0.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6ApKcHNJigXBfZa6XlDQ8feJpq7SG1ogZXg6M4FiNzgd6irs3LUAzo0Pfn4F2ZI9liGnH1XIBR/OtSbZmJAV5w==",
"path": "microsoft.extensions.objectpool/8.0.11",
"hashPath": "microsoft.extensions.objectpool.8.0.11.nupkg.sha512"
},
"Microsoft.Extensions.Options/8.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-dWGKvhFybsaZpGmzkGCbNNwBD1rVlWzrZKANLW/CcbFJpCEceMCGzT7zZwHOGBCbwM0SzBuceMj5HN1LKV1QqA==",
"path": "microsoft.extensions.options/8.0.2",
"hashPath": "microsoft.extensions.options.8.0.2.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bXJEZrW9ny8vjMF1JV253WeLhpEVzFo1lyaZu1vQ4ZxWUlVvknZ/+ftFgVheLubb4eZPSwwxBeqS1JkCOjxd8g==",
"path": "microsoft.extensions.primitives/8.0.0",
"hashPath": "microsoft.extensions.primitives.8.0.0.nupkg.sha512"
},
"Microsoft.Net.Http.Headers/2.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/M0wVg6tJUOHutWD3BMOUVZAioJVXe0tCpFiovzv0T9T12TBf4MnaHP0efO8TCr1a6O9RZgQeZ9Gdark8L9XdA==",
"path": "microsoft.net.http.headers/2.3.0",
"hashPath": "microsoft.net.http.headers.2.3.0.nupkg.sha512"
},
"RainCrab.Plugins.AspNet/0.1.11": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6o4oboIqWXIMEWyW5cVF8dCTLWImyuYjMOqOAWf7WaqdnaEgINZA2SaRQ6AqKvo1/SbVTD3H3n+grcRUAUnlIQ==",
"path": "raincrab.plugins.aspnet/0.1.11",
"hashPath": "raincrab.plugins.aspnet.0.1.11.nupkg.sha512"
},
"RainCrab.Plugins.Base/0.1.7": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NTQdJyPxDaKKcURU+c625yS+9R0TuNbefXv9TTQ3LhsF+4TCHko0kmn0IOw4HSMuTi+jwdt8tgz2xwl4sgZYoA==",
"path": "raincrab.plugins.base/0.1.7",
"hashPath": "raincrab.plugins.base.0.1.7.nupkg.sha512"
},
"System.Buffers/4.6.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-lN6tZi7Q46zFzAbRYXTIvfXcyvQQgxnY7Xm6C6xQ9784dEL1amjM6S6Iw4ZpsvesAKnRVsM4scrDQaDqSClkjA==",
"path": "system.buffers/4.6.0",
"hashPath": "system.buffers.4.6.0.nupkg.sha512"
},
"System.Diagnostics.DiagnosticSource/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-vaoWjvkG1aenR2XdjaVivlCV9fADfgyhW5bZtXT23qaEea0lWiUljdQuze4E31vKM7ZWJaSUsbYIKE3rnzfZUg==",
"path": "system.diagnostics.diagnosticsource/8.0.1",
"hashPath": "system.diagnostics.diagnosticsource.8.0.1.nupkg.sha512"
},
"System.Reflection.Metadata/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+4sz5vGHPlo+5NpAxf2IlABnqVvOHOxv17b4dONv4hVwyNeFAeBevT14DIn7X3YWQ+eQFYO3YeTBNCleAblOKA==",
"path": "system.reflection.metadata/8.0.1",
"hashPath": "system.reflection.metadata.8.0.1.nupkg.sha512"
},
"System.Text.Encodings.Web/8.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yev/k9GHAEGx2Rg3/tU6MQh4HGBXJs70y7j1LaM1i/ER9po+6nnQ6RRqTJn1E7Xu0fbIFK80Nh5EoODxrbxwBQ==",
"path": "system.text.encodings.web/8.0.0",
"hashPath": "system.text.encodings.web.8.0.0.nupkg.sha512"
},
"TestLib.Writer/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JKT74Y66dwgCtTEqILMfZW8VMJsQFTFyaf+br9O+kRVqqcGvXyFcCUeZoq08o0r83RHYcZcbltisApBULdN4mQ==",
"path": "testlib.writer/2.0.0",
"hashPath": "testlib.writer.2.0.0.nupkg.sha512"
}
}
}

Binary file not shown.

View File

@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net8.0",
"rollForward": "LatestMinor",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}

View File

@ -0,0 +1,7 @@
{
"runtimeOptions": {
"additionalProbingPaths": [
"../."
]
}
}

Binary file not shown.

View File

@ -0,0 +1,6 @@
{
"Id": "plugin2",
"Version": "1.0.0",
"Assembly": "Plugin2.dll",
"Name": "Plugin2"
}

View File

@ -2,9 +2,13 @@ using FastBlog.Core;
using FastBlog.Web; using FastBlog.Web;
using FastBlog.Web.Middlewares; using FastBlog.Web.Middlewares;
using Microsoft.AspNetCore.RateLimiting; using Microsoft.AspNetCore.RateLimiting;
using RainCrab.Plugins.AspNet;
using RainCrab.Plugins.AspNet.Extensions;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == Environments.Development) if (Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") == Environments.Development)
builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation(); builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
else else
@ -37,8 +41,15 @@ builder.Services.AddRateLimiter(rateLimiterOptions =>
}; };
}); });
var app = builder.Build(); WebPluginLoadContext webPluginLoadContext;
await using (var tempServiceProvider = builder.Logging.Services.BuildServiceProvider())
{
var logger = tempServiceProvider.GetRequiredService<ILoggerFactory>().CreateLogger("PreBuildLogger");
webPluginLoadContext = await builder.AddWebPlugins(logger, AppContext.BaseDirectory);
}
var app = builder.Build();
if (!app.Environment.IsDevelopment()) if (!app.Environment.IsDevelopment())
{ {
@ -62,6 +73,12 @@ app.MapControllerRoute(
await app.Services.MigrateUp(app.Configuration); await app.Services.MigrateUp(app.Configuration);
app.Run(); await app.RunAsync();
foreach (IWebPlugin plugin in webPluginLoadContext.LoadedPlugins)
{
await plugin.ShutdownAsync(webPluginLoadContext);
}
return; return;