Skip to content

Commit

Permalink
release: v5.0.0
Browse files Browse the repository at this point in the history
**5.0.0**
* Added support for ASP.NET Core 3.1.
* Major refactor of how Entity Framework multitenant data isolation works. No longer need to derive from `MultiTenantDbContext` greatly improving flexibility. `IdentityMultiTenantDbContext` reworked under this new model and no longer requires or recommends use of multitenant support classes, e.g. `MultiTenantIdentityUser`. Attempted to minimize impact, but if using `IdentityMultiTenantDbContext` **this may be a breaking change!** Thanks **@GordonBlahut**!
* Simplified `EFCoreStore` to use `TenantInfo` directly. **This is a breaking change!**
* Fixed a bug with user id not being set correctly in legacy 'IdentityMultiTenantDbContext'.
* Added `ConfigurationStore` to load tenant information from app configuration. The store is read-only in code, but changes in configuration (e.g. appsettings.json) are picked up at runtime. Updated most sample projects to use this store.
* Deprecated `InMemoryStore` functionality that reads from configuration.
* Added `HttpRemoteStore` which will make an http request to get a `TenantInfo` object. It can be extended with `DelegatingHandler`s (i.e. to add authentication headers). Added sample projects for this store. Thanks to **@colindekker**!
* Fixed an exception with OpenIdConnect remote authentication if "state" is not returned from the identity provider. The new behavior will result in no tenant found for the request.
* Updated samples.
* Updated documentation.
* Updated unit tests.
  • Loading branch information
AndrewTriesToCode authored Jan 12, 2020
1 parent b45d69f commit decda4b
Show file tree
Hide file tree
Showing 28 changed files with 75 additions and 58 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,17 @@
## Version
**5.0.0**
* Added support for ASP.NET Core 3.1.
* Major refactor of how Entity Framework multitenant data isolation works. No longer need to derive from `MultiTenantDbContext` greatly improving flexibility. `IdentityMultiTenantDbContext` reworked under this new model and no longer requires or recommends use of multitenant support classes, e.g. `MultiTenantIdentityUser`. Attempted to minimize impact, but if using `IdentityMultiTenantDbContext` **this may be a breaking change!** Thanks **@GordonBlahut**!
* Simplified `EFCoreStore` to use `TenantInfo` directly. **This is a breaking change!**
* Fixed a bug with user id not being set correctly in legacy 'IdentityMultiTenantDbContext'.
* Added `ConfigurationStore` to load tenant information from app configuration. The store is read-only in code, but changes in configuration (e.g. appsettings.json) are picked up at runtime. Updated most sample projects to use this store.
* Deprecated `InMemoryStore` functionality that reads from configuration.
* Added `HttpRemoteStore` which will make an http request to get a `TenantInfo` object. It can be extended with `DelegatingHandler`s (i.e. to add authentication headers). Added sample projects for this store. Thanks to **@colindekker**!
* Fixed an exception with OpenIdConnect remote authentication if "state" is not returned from the identity provider. The new behavior will result in no tenant found for the request.
* Updated samples.
* Updated documentation.
* Updated unit tests.

**4.0.0**
* Added support for ASP.NET Core 3! Valid project targets are `netcoreapp3.0`, `netcoreapp2.0`, and `netcoreapp2.1`.
* Added a sample app for ASP.NET 3 highlighting the route strategy improvements due to the endpoint routing mechanism.
Expand Down
5 changes: 2 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
<Project>
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Version>4.0.0</Version>
<Version>5.0.0</Version>
<Authors>Andrew White</Authors>
<Copyright>Copyright ©2019 Andrew White</Copyright>
<Copyright>Copyright ©2020 Andrew White</Copyright>
<PackageIconUrl>https://www.finbuckle.com/images/favicon-64x64.png</PackageIconUrl>
<PackageLicenseExpression>Apache-2.0</PackageLicenseExpression>
<PackageProjectUrl>https://www.finbuckle.com</PackageProjectUrl>
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Finbuckle.MultiTenant 4.0.0
# Finbuckle.MultiTenant 5.0.0

Finbuckle.MultiTenant is a multitenancy library for ASP.NET Core. It provides functionality for tenant resolution, per-tenant app configuration, and per-tenant data isolation.

ASP.NET Core 3.0, 2.2, and 2.1 are supported.
ASP.NET Core 3.1, 3.0, and 2.1 are actively supported.

See [https://www.finbuckle.com](https://www.finbuckle.com) for more details and documentation.

Expand Down
13 changes: 7 additions & 6 deletions docs/Introduction.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,18 @@
# Finbuckle.MultiTenant Docs
Current version: 4.0.0
Current version: 5.0.0
[Version History](https://github.com/Finbuckle/Finbuckle.MultiTenant/blob/master/CHANGELOG.md)

Finbuckle.MultiTenant is a multitenancy library for ASP.NET Core. It provides functionality for tenant resolution, per-tenant app configuration, and per-tenant data isolation.

ASP.NET Core 3.0, 2.2, and 2.1 are supported.
ASP.NET Core 3.1, 3.0, and 2.1 are actively supported.

## Community
Check out the [GitHub repository](https://github.com/Finbuckle/Finbuckle.MultiTenant) to ask a question, make a request, or check out the code!

## Sample Projects
In addition to this documentation a variety of sample projects are available. Be sure to read the information on the index page of each
sample and the code comments in the `Startup` class.
In addition to this documentation a variety of sample projects are available. Be sure to read the information on the index page of each sample and the code comments in the `Startup` class.

**ASP.NET Core 3.0 Samples**
**ASP.NET Core 3.1 Samples**

[Authentication Options Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%203/AuthenticationOptionsSample)

Expand All @@ -27,13 +26,15 @@ sample and the code comments in the `Startup` class.

[Host Strategy Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%203/HostStrategySample)

[Http Remote Store Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%203/HttpRemoteStoreSample)

[Identity DataIsolation Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%203/IdentityDataIsolationSample)

[Route Strategy Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%203/RouteStrategySample)

[Static Strategy Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%203/StaticStrategySample)

**ASP.NET Core 2.2 Samples**
**ASP.NET Core 2.1 Samples**

[Authentication Options Sample](https://github.com/Finbuckle/Finbuckle.MultiTenant/tree/master/samples/ASP.NET%20Core%202/AuthenticationOptionsSample)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ else
</p>
<pre><code>services.AddMultiTenant()... // Setup host and strategy...
WithRemoteAuthentication(). // Important!
WithPerTenantOptions<AuthenticationOptions>((options, tenantInfo) =>
WithPerTenantOptions&lt;AuthenticationOptions&gt;((options, tenantInfo) =>
{
// Allow each tenant to have a different default challenge scheme.
if (tenantInfo.Items.TryGetValue("ChallengeScheme", out object challengeScheme))
{
options.DefaultChallengeScheme = (string)challengeScheme;
}
}).
WithPerTenantOptions<CookieAuthenticationOptions>((options, tenantInfo) =>
WithPerTenantOptions&lt;CookieAuthenticationOptions&gt;((options, tenantInfo) =>
{
// Set a unique cookie name for this tenant.
options.Cookie.Name = tenantInfo.Id + "-cookie";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="2.1.14" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" />
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.14" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
<PackageReference Include="Microsoft.AspNetCore.App"/>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.0" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.0" PrivateAssets="All" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="3.1.0" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,15 @@ else
</p>
<pre><code>services.AddMultiTenant()... // Setup host and strategy...
WithRemoteAuthentication(). // Important!
WithPerTenantOptions<AuthenticationOptions>((options, tenantInfo) =>
WithPerTenantOptions&lt;AuthenticationOptions&gt;((options, tenantInfo) =>
{
// Allow each tenant to have a different default challenge scheme.
if (tenantInfo.Items.TryGetValue("ChallengeScheme", out object challengeScheme))
{
options.DefaultChallengeScheme = (string)challengeScheme;
}
}).
WithPerTenantOptions<CookieAuthenticationOptions>((options, tenantInfo) =>
WithPerTenantOptions&lt;CookieAuthenticationOptions&gt;((options, tenantInfo) =>
{
// Set a unique cookie name for this tenant.
options.Cookie.Name = tenantInfo.Id + "-cookie";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
</PropertyGroup>

<ItemGroup>
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.0" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
</PropertyGroup>

<ItemGroup>
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.0" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
</PropertyGroup>

<ItemGroup>
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="3.1.0" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
</PropertyGroup>

<ItemGroup>
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.0" PrivateAssets="All" />
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@
</PropertyGroup>

<ItemGroup>
<!-- <PackageReference Include="Finbuckle.MultiTenant" Version="4.0.0" /> -->
<PackageReference Include="Finbuckle.MultiTenant" Version="5.0.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" />
<!-- <ProjectReference Include="..\..\..\src\Finbuckle.MultiTenant\Finbuckle.MultiTenant.csproj" /> -->
</ItemGroup>
</Project>
Loading

0 comments on commit decda4b

Please sign in to comment.