add offline packages
This commit is contained in:
5
offline/packages/microsoft.extensions.options/9.0.0/.nupkg.metadata
vendored
Normal file
5
offline/packages/microsoft.extensions.options/9.0.0/.nupkg.metadata
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"version": 2,
|
||||
"contentHash": "y2146b3jrPI3Q0lokKXdKLpmXqakYbDIPDV6r3M8SqvSf45WwOTzkyfDpxnZXJsJQEpAsAqjUq5Pu8RCJMjubg==",
|
||||
"source": "https://api.nuget.org/v3/index.json"
|
||||
}
|
||||
BIN
offline/packages/microsoft.extensions.options/9.0.0/.signature.p7s
vendored
Normal file
BIN
offline/packages/microsoft.extensions.options/9.0.0/.signature.p7s
vendored
Normal file
Binary file not shown.
BIN
offline/packages/microsoft.extensions.options/9.0.0/Icon.png
vendored
Normal file
BIN
offline/packages/microsoft.extensions.options/9.0.0/Icon.png
vendored
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 KiB |
23
offline/packages/microsoft.extensions.options/9.0.0/LICENSE.TXT
vendored
Normal file
23
offline/packages/microsoft.extensions.options/9.0.0/LICENSE.TXT
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
46
offline/packages/microsoft.extensions.options/9.0.0/Microsoft.Extensions.Options.nuspec
vendored
Normal file
46
offline/packages/microsoft.extensions.options/9.0.0/Microsoft.Extensions.Options.nuspec
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
|
||||
<metadata>
|
||||
<id>Microsoft.Extensions.Options</id>
|
||||
<version>9.0.0</version>
|
||||
<authors>Microsoft</authors>
|
||||
<license type="expression">MIT</license>
|
||||
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
|
||||
<icon>Icon.png</icon>
|
||||
<readme>PACKAGE.md</readme>
|
||||
<projectUrl>https://dot.net/</projectUrl>
|
||||
<description>Provides a strongly typed way of specifying and accessing settings using dependency injection.</description>
|
||||
<releaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</releaseNotes>
|
||||
<copyright>© Microsoft Corporation. All rights reserved.</copyright>
|
||||
<serviceable>true</serviceable>
|
||||
<repository type="git" url="https://github.com/dotnet/runtime" commit="9d5a6a9aa463d6d10b0b0ba6d5982cc82f363dc3" />
|
||||
<dependencies>
|
||||
<group targetFramework=".NETFramework4.6.2">
|
||||
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="Microsoft.Extensions.Primitives" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="System.ValueTuple" version="4.5.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework="net8.0">
|
||||
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="Microsoft.Extensions.Primitives" version="9.0.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework="net9.0">
|
||||
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="Microsoft.Extensions.Primitives" version="9.0.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.0">
|
||||
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="Microsoft.Extensions.Primitives" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="System.ComponentModel.Annotations" version="5.0.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
<group targetFramework=".NETStandard2.1">
|
||||
<dependency id="Microsoft.Extensions.DependencyInjection.Abstractions" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="Microsoft.Extensions.Primitives" version="9.0.0" exclude="Build,Analyzers" />
|
||||
<dependency id="System.ComponentModel.Annotations" version="5.0.0" exclude="Build,Analyzers" />
|
||||
</group>
|
||||
</dependencies>
|
||||
<frameworkAssemblies>
|
||||
<frameworkAssembly assemblyName="System.ComponentModel.DataAnnotations" targetFramework=".NETFramework4.6.2" />
|
||||
</frameworkAssemblies>
|
||||
</metadata>
|
||||
</package>
|
||||
170
offline/packages/microsoft.extensions.options/9.0.0/PACKAGE.md
vendored
Normal file
170
offline/packages/microsoft.extensions.options/9.0.0/PACKAGE.md
vendored
Normal file
@@ -0,0 +1,170 @@
|
||||
## About
|
||||
`Microsoft.Extensions.Options` provides a strongly typed way of specifying and accessing settings using dependency injection and acts as a bridge between configuration, DI, and higher level libraries. This library is the glue for how an app developer uses DI to configure the behavior of a library like HttpClient Factory. This also enables user to get a strongly-typed view of their configuration.
|
||||
|
||||
Within this package, you'll find an options validation source generator that generates exceptionally efficient and optimized code for validating options.
|
||||
|
||||
## Key Features
|
||||
|
||||
* Offer the IValidateOptions interface for the validation of options, along with several generic ValidateOptions classes that implement this interface.
|
||||
* OptionsBuilder to configure options.
|
||||
* Provide extension methods for service collections and options builder to register options and validate options.
|
||||
* Supply a set of generic ConfigureNamedOptions classes that implement the IConfigureNamedOptions interface for configuring named options.
|
||||
* Provide a source generator that generates validation code for options.
|
||||
* Options caching, managing and monitoring.
|
||||
|
||||
## How to Use
|
||||
|
||||
#### Options validation example
|
||||
|
||||
```C#
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddControllersWithViews();
|
||||
|
||||
// Load the configuration and validate it
|
||||
builder.Services.AddOptions<MyConfigOptions>()
|
||||
.Bind(builder.Configuration.GetSection(MyConfigOptions.MyConfig))
|
||||
.ValidateDataAnnotations();
|
||||
var app = builder.Build();
|
||||
|
||||
|
||||
// Declare the option class to validate
|
||||
public class MyConfigOptions
|
||||
{
|
||||
public const string MyConfig = "MyConfig";
|
||||
|
||||
[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$")]
|
||||
public string Key1 { get; set; }
|
||||
[Range(0, 1000,
|
||||
ErrorMessage = "Value for {0} must be between {1} and {2}.")]
|
||||
public int Key2 { get; set; }
|
||||
public int Key3 { get; set; }
|
||||
}
|
||||
```
|
||||
|
||||
#### Using IValidateOptions to validate options
|
||||
|
||||
```C#
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Services.AddControllersWithViews();
|
||||
|
||||
// Configuration to validate
|
||||
builder.Services.Configure<MyConfigOptions>(builder.Configuration.GetSection(
|
||||
MyConfigOptions.MyConfig));
|
||||
|
||||
// OPtions validation through the DI container
|
||||
builder.Services.AddSingleton<IValidateOptions
|
||||
<MyConfigOptions>, MyConfigValidation>();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
public class MyConfigValidation : IValidateOptions<MyConfigOptions>
|
||||
{
|
||||
public MyConfigOptions _config { get; private set; }
|
||||
|
||||
public MyConfigValidation(IConfiguration config)
|
||||
{
|
||||
_config = config.GetSection(MyConfigOptions.MyConfig)
|
||||
.Get<MyConfigOptions>();
|
||||
}
|
||||
|
||||
public ValidateOptionsResult Validate(string name, MyConfigOptions options)
|
||||
{
|
||||
string? vor = null;
|
||||
var rx = new Regex(@"^[a-zA-Z''-'\s]{1,40}$");
|
||||
var match = rx.Match(options.Key1!);
|
||||
|
||||
if (string.IsNullOrEmpty(match.Value))
|
||||
{
|
||||
vor = $"{options.Key1} doesn't match RegEx \n";
|
||||
}
|
||||
|
||||
if ( options.Key2 < 0 || options.Key2 > 1000)
|
||||
{
|
||||
vor = $"{options.Key2} doesn't match Range 0 - 1000 \n";
|
||||
}
|
||||
|
||||
if (_config.Key2 != default)
|
||||
{
|
||||
if(_config.Key3 <= _config.Key2)
|
||||
{
|
||||
vor += "Key3 must be > than Key2.";
|
||||
}
|
||||
}
|
||||
|
||||
if (vor != null)
|
||||
{
|
||||
return ValidateOptionsResult.Fail(vor);
|
||||
}
|
||||
|
||||
return ValidateOptionsResult.Success;
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
#### Options Validation Source Generator Example
|
||||
|
||||
```C#
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
public class MyConfigOptions
|
||||
{
|
||||
[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$")]
|
||||
public string Key1 { get; set; }
|
||||
|
||||
[Range(0, 1000,
|
||||
ErrorMessage = "Value for {0} must be between {1} and {2}.")]
|
||||
public int Key2 { get; set; }
|
||||
public int Key3 { get; set; }
|
||||
}
|
||||
|
||||
[OptionsValidator]
|
||||
public partial class MyConfigValidation : IValidateOptions<MyConfigOptions>
|
||||
{
|
||||
// Source generator will automatically provide the implementation of IValidateOptions
|
||||
// Then you can add the validation to the DI Container using the following code:
|
||||
//
|
||||
// builder.Services.AddSingleton<IValidateOptions
|
||||
// <MyConfigOptions>, MyConfigValidation>();
|
||||
// builder.Services.AddOptions<MyConfigOptions>()
|
||||
// .Bind(builder.Configuration.GetSection(MyConfigOptions.MyConfig))
|
||||
// .ValidateDataAnnotations();
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
## Main Types
|
||||
|
||||
The main types provided by this library are:
|
||||
|
||||
* `IOptions`, `IOptionsFactory`, and `IOptionsMonitor`
|
||||
* `IValidateOptions` and `ValidateOptions`
|
||||
* `OptionsBuilder`, `OptionsFactory`, `OptionsMonitor`, and `OptionsManager`
|
||||
* `OptionsServiceCollectionExtensions`
|
||||
* `OptionsValidatorAttribute`
|
||||
|
||||
## Additional Documentation
|
||||
|
||||
* [Conceptual documentation](https://learn.microsoft.com/aspnet/core/fundamentals/configuration/options)
|
||||
* [API documentation](https://learn.microsoft.com/dotnet/api/microsoft.extensions.options)
|
||||
|
||||
## Related Packages
|
||||
|
||||
[Microsoft.Extensions.Logging](https://www.nuget.org/packages/Microsoft.Extensions.Logging)
|
||||
[Microsoft.Extensions.Configuration](https://www.nuget.org/packages/Microsoft.Extensions.Configuration)
|
||||
|
||||
## Feedback & Contributing
|
||||
|
||||
Microsoft.Extensions.Options is released as open source under the [MIT license](https://licenses.nuget.org/MIT). Bug reports and contributions are welcome at [the GitHub repository](https://github.com/dotnet/runtime).
|
||||
1396
offline/packages/microsoft.extensions.options/9.0.0/THIRD-PARTY-NOTICES.TXT
vendored
Normal file
1396
offline/packages/microsoft.extensions.options/9.0.0/THIRD-PARTY-NOTICES.TXT
vendored
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,6 @@
|
||||
<Project InitialTargets="NETStandardCompatError_Microsoft_Extensions_Options_net462">
|
||||
<Target Name="NETStandardCompatError_Microsoft_Extensions_Options_net462"
|
||||
Condition="'$(SuppressTfmSupportBuildWarnings)' == ''">
|
||||
<Warning Text="Microsoft.Extensions.Options 9.0.0 doesn't support $(TargetFramework) and has not been tested with it. Consider upgrading your TargetFramework to net462 or later. You may also set <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings> in the project file to ignore this warning and attempt to run in this unsupported configuration at your own risk." />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -0,0 +1,31 @@
|
||||
<Project>
|
||||
<Target Name="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<ItemGroup>
|
||||
<_Microsoft_Extensions_OptionsAnalyzer Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)' == 'Microsoft.Extensions.Options'" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_Microsoft_Extensions_OptionsAnalyzerMultiTargeting"
|
||||
Condition="'$(SupportsRoslynComponentVersioning)' != 'true'"
|
||||
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
|
||||
DependsOnTargets="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Remove our analyzers targeting roslyn4.x -->
|
||||
<Analyzer Remove="@(_Microsoft_Extensions_OptionsAnalyzer)"
|
||||
Condition="$([System.String]::Copy('%(_Microsoft_Extensions_OptionsAnalyzer.Identity)').IndexOf('roslyn4')) >= 0"/>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_Microsoft_Extensions_OptionsRemoveAnalyzers"
|
||||
Condition="'$(DisableMicrosoftExtensionsOptionsSourceGenerator)' == 'true'"
|
||||
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
|
||||
DependsOnTargets="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<!-- Remove all our analyzers -->
|
||||
<ItemGroup>
|
||||
<Analyzer Remove="@(_Microsoft_Extensions_OptionsAnalyzer)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -0,0 +1,31 @@
|
||||
<Project>
|
||||
<Target Name="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<ItemGroup>
|
||||
<_Microsoft_Extensions_OptionsAnalyzer Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)' == 'Microsoft.Extensions.Options'" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_Microsoft_Extensions_OptionsAnalyzerMultiTargeting"
|
||||
Condition="'$(SupportsRoslynComponentVersioning)' != 'true'"
|
||||
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
|
||||
DependsOnTargets="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Remove our analyzers targeting roslyn4.x -->
|
||||
<Analyzer Remove="@(_Microsoft_Extensions_OptionsAnalyzer)"
|
||||
Condition="$([System.String]::Copy('%(_Microsoft_Extensions_OptionsAnalyzer.Identity)').IndexOf('roslyn4')) >= 0"/>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_Microsoft_Extensions_OptionsRemoveAnalyzers"
|
||||
Condition="'$(DisableMicrosoftExtensionsOptionsSourceGenerator)' == 'true'"
|
||||
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
|
||||
DependsOnTargets="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<!-- Remove all our analyzers -->
|
||||
<ItemGroup>
|
||||
<Analyzer Remove="@(_Microsoft_Extensions_OptionsAnalyzer)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -0,0 +1,6 @@
|
||||
<Project InitialTargets="NETStandardCompatError_Microsoft_Extensions_Options_net8_0">
|
||||
<Target Name="NETStandardCompatError_Microsoft_Extensions_Options_net8_0"
|
||||
Condition="'$(SuppressTfmSupportBuildWarnings)' == ''">
|
||||
<Warning Text="Microsoft.Extensions.Options 9.0.0 doesn't support $(TargetFramework) and has not been tested with it. Consider upgrading your TargetFramework to net8.0 or later. You may also set <SuppressTfmSupportBuildWarnings>true</SuppressTfmSupportBuildWarnings> in the project file to ignore this warning and attempt to run in this unsupported configuration at your own risk." />
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -0,0 +1,31 @@
|
||||
<Project>
|
||||
<Target Name="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<ItemGroup>
|
||||
<_Microsoft_Extensions_OptionsAnalyzer Include="@(Analyzer)" Condition="'%(Analyzer.NuGetPackageId)' == 'Microsoft.Extensions.Options'" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_Microsoft_Extensions_OptionsAnalyzerMultiTargeting"
|
||||
Condition="'$(SupportsRoslynComponentVersioning)' != 'true'"
|
||||
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
|
||||
DependsOnTargets="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Remove our analyzers targeting roslyn4.x -->
|
||||
<Analyzer Remove="@(_Microsoft_Extensions_OptionsAnalyzer)"
|
||||
Condition="$([System.String]::Copy('%(_Microsoft_Extensions_OptionsAnalyzer.Identity)').IndexOf('roslyn4')) >= 0"/>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="_Microsoft_Extensions_OptionsRemoveAnalyzers"
|
||||
Condition="'$(DisableMicrosoftExtensionsOptionsSourceGenerator)' == 'true'"
|
||||
AfterTargets="ResolvePackageDependenciesForBuild;ResolveNuGetPackageAssets"
|
||||
DependsOnTargets="_Microsoft_Extensions_OptionsGatherAnalyzers">
|
||||
|
||||
<!-- Remove all our analyzers -->
|
||||
<ItemGroup>
|
||||
<Analyzer Remove="@(_Microsoft_Extensions_OptionsAnalyzer)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
2404
offline/packages/microsoft.extensions.options/9.0.0/lib/net462/Microsoft.Extensions.Options.xml
vendored
Normal file
2404
offline/packages/microsoft.extensions.options/9.0.0/lib/net462/Microsoft.Extensions.Options.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2025
offline/packages/microsoft.extensions.options/9.0.0/lib/net8.0/Microsoft.Extensions.Options.xml
vendored
Normal file
2025
offline/packages/microsoft.extensions.options/9.0.0/lib/net8.0/Microsoft.Extensions.Options.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2025
offline/packages/microsoft.extensions.options/9.0.0/lib/net9.0/Microsoft.Extensions.Options.xml
vendored
Normal file
2025
offline/packages/microsoft.extensions.options/9.0.0/lib/net9.0/Microsoft.Extensions.Options.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2404
offline/packages/microsoft.extensions.options/9.0.0/lib/netstandard2.0/Microsoft.Extensions.Options.xml
vendored
Normal file
2404
offline/packages/microsoft.extensions.options/9.0.0/lib/netstandard2.0/Microsoft.Extensions.Options.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
2340
offline/packages/microsoft.extensions.options/9.0.0/lib/netstandard2.1/Microsoft.Extensions.Options.xml
vendored
Normal file
2340
offline/packages/microsoft.extensions.options/9.0.0/lib/netstandard2.1/Microsoft.Extensions.Options.xml
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
offline/packages/microsoft.extensions.options/9.0.0/microsoft.extensions.options.9.0.0.nupkg
vendored
Normal file
BIN
offline/packages/microsoft.extensions.options/9.0.0/microsoft.extensions.options.9.0.0.nupkg
vendored
Normal file
Binary file not shown.
@@ -0,0 +1 @@
|
||||
BefJBCUjCU/KL8gTRbFX9eeOQvA5F7IkWFKNy5+tdyFfD2+weOq9MDICLJ1m1//69/MkN+Kf7MYTzFl6wHcLnQ==
|
||||
0
offline/packages/microsoft.extensions.options/9.0.0/useSharedDesignerContext.txt
vendored
Normal file
0
offline/packages/microsoft.extensions.options/9.0.0/useSharedDesignerContext.txt
vendored
Normal file
Reference in New Issue
Block a user