diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
index 4ecb0c6543..1300b5f4d7 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -54,7 +54,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-dotnet@master
with:
- dotnet-version: 9.0.100
+ dotnet-version: 10.0.x
- name: Build All
run: ./build-all.ps1
diff --git a/Directory.Build.props b/Directory.Build.props
index f601750180..2e45c55d44 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,8 +5,9 @@
- all
- runtime; build; native; contentfiles; analyzers
+ 6.0.4
+ all
+ runtime; build; native; contentfiles; analyzers
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 1b5bfaafb6..bd0fa48a3e 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,131 +1,135 @@
true
+ true
-
+
-
+
-
+
-
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
+
-
-
+
+
@@ -133,24 +137,24 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
-
+
-
-
+
+
-
+
@@ -158,34 +162,33 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
+
-
-
-
+
+
+
-
+
-
+
-
-
+
+
-
\ No newline at end of file
+
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization.sln b/abp_io/AbpIoLocalization/AbpIoLocalization.sln
deleted file mode 100644
index 87b9fecdd5..0000000000
--- a/abp_io/AbpIoLocalization/AbpIoLocalization.sln
+++ /dev/null
@@ -1,25 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29009.5
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AbpIoLocalization", "AbpIoLocalization\AbpIoLocalization.csproj", "{35D94BAB-22DF-47E0-AB4A-99CB6495CF50}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {35D94BAB-22DF-47E0-AB4A-99CB6495CF50}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {2CF52C6D-D914-44A3-8F02-7E7BEA0644C5}
- EndGlobalSection
-EndGlobal
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization.slnx b/abp_io/AbpIoLocalization/AbpIoLocalization.slnx
new file mode 100644
index 0000000000..6301168950
--- /dev/null
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization.slnx
@@ -0,0 +1,3 @@
+
+
+
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj
index 6e7bbc184e..a1c99ce4aa 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
index 7ef0ca75e9..4765b282d0 100644
--- a/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
+++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/en.json
@@ -1911,6 +1911,7 @@
"SupportCustomABPArchitecturesExplanation": "No. Support is only provided for standard ABP solution structures. On the other hand, you can always get support for your custom needs with a paid consultancy from the ABP Team.",
"DoesABPCollectAnyPersonalOrTechnicalData": "Does ABP collect any personal or technical data?",
"ABPCollectAnyDataExplanation": "The software may collect information about you and your use of the software, and send that to Volosoft. Volosoft as the software and service provider may use this information to provide services and improve its products & services. You may opt-out of these scenarios, as described in the EULA under PRIVACY AND COLLECTION OF PERSONAL DATA topic .",
- "InThisDocument": "In this document"
+ "InThisDocument": "In this document",
+ "RecommendedArticles": "Recommended Articles"
}
}
diff --git a/docs/en/Community-Articles/2025-09-18-How-Can-We-Apply-the-DRY-Principle-in-a-Better-Way/post.md b/docs/en/Community-Articles/2025-09-18-How-Can-We-Apply-the-DRY-Principle-in-a-Better-Way/post.md
new file mode 100644
index 0000000000..c0002e5d8c
--- /dev/null
+++ b/docs/en/Community-Articles/2025-09-18-How-Can-We-Apply-the-DRY-Principle-in-a-Better-Way/post.md
@@ -0,0 +1,192 @@
+# How Can We Apply the DRY Principle in a Better Way
+
+## Introduction
+
+In modern software development, the **DRY principle** - short for *Don't Repeat Yourself* - is one of the most important rules for writing clean and easy-to-maintain code. First introduced by Andrew Hunt and David Thomas in *The Pragmatic Programmer*, DRY focuses on removing repetition in code, documentation, and processes. The main idea is: *"Every piece of knowledge should exist in only one place in the system."* Even if this idea looks simple, using it in real projects - especially big ones - needs discipline, good planning, and the right tools.
+
+This article explains what the DRY principle is, why it matters, how we can use it in a better way, and how big projects can make it work.
+
+---
+
+## What is the DRY Principle?
+
+The DRY principle is about reducing repetition. Repetition can happen in many forms:
+
+- **Code repetition:** Writing the same logic in different functions, classes, or modules.
+
+- **Business logic repetition:** Having the same business rules in different parts of the system.
+
+- **Configuration repetition:** Keeping multiple versions of the same settings or constants.
+
+- **Documentation repetition:** Copying the same explanations across files, which later become inconsistent.
+
+When teams follow DRY, each piece of knowledge exists only once, making the system easier to update and lowering the chance of mistakes.
+
+---
+
+## Why is DRY Important?
+
+1. **Easy Maintenance**
+ If some logic changes, we only need to update it in one place instead of many places.
+
+2. **Consistency**
+ DRY helps avoid bugs caused by different versions of the same logic.
+
+3. **Better Growth**
+ DRY codebases are smaller and more modular, so they grow more easily.
+
+4. **Teamwork**
+ In large teams, DRY reduces confusion and makes it easier for everyone to understand the system.
+
+---
+
+## Common Mistakes with DRY
+
+Sometimes developers use DRY in the wrong way. Trying too hard to remove repetition can create very complex code that is difficult to read. For example:
+
+- **Abstracting too early:** Generalizing code before real patterns appear can cause confusion.
+
+- **Over-engineering:** Building tools or frameworks for problems that only happen once.
+
+- **Too much connection:** Forcing different modules to share code when they should stay independent.
+
+The goal of DRY is not to remove *all* repetition, but to remove *meaningless repetition* that makes code harder to maintain.
+
+---
+
+## How Can We Use DRY Better?
+
+### 1. Find Repetition Early
+
+Tools like **linters, static analyzers, and code reviews** help find repeated logic. Some tools can even automatically detect duplicate code.
+
+### 2. Create Reusable Components
+
+Instead of copying code, move shared logic into:
+
+- Functions or methods
+
+- Utility classes
+
+- Shared modules or libraries
+
+- Configuration files (for constants)
+
+**Example:**
+
+```python
+# Not DRY
+send_email_to_admin(subject, body)
+send_email_to_user(subject, body)
+
+# DRY
+send_email(recipient_type, subject, body)
+```
+
+### 3. Keep Documentation in One Place
+
+Do not copy the same documentation to many files. Use wikis, shared docs, or API tools that pull from one single source.
+
+### 4. Use Frameworks and Standards
+
+Frameworks like **Spring Boot, ASP.NET, or Django** give built-in ways to follow DRY, so developers don’t have to repeat the same patterns.
+
+### 5. Automate Tasks with High Repetition
+
+Instead of writing the same boilerplate code again and again, use:
+
+- Code generators
+
+- CI/CD pipelines
+
+- Infrastructure as Code (IaC)
+
+---
+
+## Practical Steps to Apply DRY in Daily Work
+
+Applying DRY is not only about big design decisions; it is also about small habits in daily coding. Some practical steps include:
+
+- **Review before copy-paste:** When you feel the need to copy code, stop and ask if it can be moved to a shared method or module.
+
+- **Write helper functions:** If you see similar logic more than twice, create a helper function instead of repeating it.
+
+- **Use clear naming:** Good names for functions and variables make shared code easier to understand and reuse.
+
+- **Communicate with the team:** Before creating a new utility or feature, check if something similar already exists in the project.
+
+- **Refactor regularly:** Small refactors during development help keep code clean and reduce hidden repetition.
+
+These small actions in daily work make it easier to follow DRY naturally, without waiting for big rewrites.
+
+---
+
+## DRY in Large Projects
+
+In big systems, DRY is harder but also more important. Large codebases often involve many developers working at the same time, which increases the chance of duplication.
+
+### How Big Teams Use DRY:
+
+1. **Modular Architectures**
+ Breaking applications into services, libraries, or packages helps to centralize shared functionality.
+
+2. **Shared Libraries and APIs**
+ Instead of rewriting logic, teams create internal libraries that act as the single source of truth.
+
+3. **Code Reviews and Pair Programming**
+ Developers check each other’s work to find repetition early.
+
+4. **Automated Tools**
+ Tools like **SonarQube, PMD, and ESLint** help detect duplicate code.
+
+5. **Clear Ownership**
+ Assigning owners for modules helps keep consistency and avoids duplication.
+
+---
+
+## Example: DRY in a Large Project
+
+Imagine a large e-commerce platform with multiple teams:
+
+- **Team A** handles user authentication.
+
+- **Team B** handles orders.
+
+- **Team C** handles payments.
+
+Without DRY, both Team B and Team C might create their own email notification system. With DRY, they share a **Notification Service**:
+
+```csharp
+// Shared Notification Service
+public class NotificationService {
+ public void Send(string recipient, string subject, string message) {
+ // Unified logic for sending notifications
+ }
+}
+
+// Usage in Orders Module
+notificationService.Send(order.CustomerEmail, "Order Confirmed", "Your order has been placed.");
+
+// Usage in Payments Module
+notificationService.Send(payment.CustomerEmail, "Payment Received", "Your payment was successful.");
+```
+
+This way, if the email format changes, only the **Notification Service** needs updating.
+
+---
+
+## Conclusion
+
+The DRY principle is still one of the most important rules in modern software development. While the rule sounds simple - *don’t repeat yourself* - using it in the right way requires careful thinking. Wrong use of DRY can make things more complex, but correct use of DRY improves maintainability, growth, and teamwork.
+
+To use DRY better:
+
+- Focus on meaningful repetition.
+
+- Create reusable components.
+
+- Use frameworks, automation, and shared libraries.
+
+- Encourage teamwork and code reviews.
+
+In large projects, DRY works best with strong architecture, helpful tools, and discipline. If teams apply these practices, they can build cleaner, more maintainable, and scalable systems.
diff --git a/docs/en/docs-nav.json b/docs/en/docs-nav.json
index 585309d8eb..c55f6845a8 100644
--- a/docs/en/docs-nav.json
+++ b/docs/en/docs-nav.json
@@ -603,6 +603,10 @@
{
"text": "Storage Providers",
"items": [
+ {
+ "text": "Memory Provider",
+ "path": "framework/infrastructure/blob-storing/memory.md"
+ },
{
"text": "File System Provider",
"path": "framework/infrastructure/blob-storing/file-system.md"
diff --git a/docs/en/framework/fundamentals/caching.md b/docs/en/framework/fundamentals/caching.md
index c1a720b394..75dab91543 100644
--- a/docs/en/framework/fundamentals/caching.md
+++ b/docs/en/framework/fundamentals/caching.md
@@ -224,9 +224,8 @@ Configure(options =>
> Write that code inside the `ConfigureServices` method of your [module class](../architecture/modularity/basics.md).
-#### Available Options
-* `HideErrors` (`bool`, default: `true`): Enables/disables hiding the errors on writing/reading values from the cache server.
+* `HideErrors` (`bool`, default: `true`): Enables or disables hiding errors when reading from or writing to the cache server. In the **development** environment, this option is **disabled** to help developers detect and fix any cache server issues.
* `KeyPrefix` (`string`, default: `null`): If your cache server is shared by multiple applications, you can set a prefix for the cache keys for your application. In this case, different applications can not overwrite each other's cache items.
* `GlobalCacheEntryOptions` (`DistributedCacheEntryOptions`): Used to set default distributed cache options (like `AbsoluteExpiration` and `SlidingExpiration`) used when you don't specify the options while saving cache items. The default value uses the `SlidingExpiration` as 20 minutes.
diff --git a/docs/en/framework/infrastructure/artificial-intelligence.md b/docs/en/framework/infrastructure/artificial-intelligence.md
new file mode 100644
index 0000000000..652c7c8233
--- /dev/null
+++ b/docs/en/framework/infrastructure/artificial-intelligence.md
@@ -0,0 +1,307 @@
+# Artificial Intelligence
+
+ABP provides a simple way to integrate AI capabilities into your applications by unifying two popular .NET AI stacks under a common concept called a "workspace":
+
+- Microsoft.Extensions.AI `IChatClient`
+- Microsoft.SemanticKernel `Kernel`
+
+A workspace is just a named scope. You configure providers per workspace and then resolve either default services (for the "Default" workspace) or workspace-scoped services.
+
+## Installation
+
+> This package is not included by default. Install it to enable AI features.
+
+It is suggested to use the ABP CLI to install the package. Open a command line window in the folder of the project (.csproj file) and type the following command:
+
+```bash
+abp add-package Volo.Abp.AI
+```
+
+### Manual Installation
+
+Add nuget package to your project:
+
+```bash
+dotnet add package Volo.Abp.AI
+```
+
+Then add the module dependency to your module class:
+
+```csharp
+using Volo.Abp.AI;
+using Volo.Abp.Modularity;
+
+[DependsOn(typeof(AbpAIModule))]
+public class MyProjectModule : AbpModule
+{
+}
+```
+
+## Usage
+
+### Chat Client
+
+#### Default configuration (quick start)
+
+Configure the default workspace to inject `IChatClient` directly.
+
+```csharp
+using Microsoft.Extensions.AI;
+using Microsoft.SemanticKernel;
+using Volo.Abp.AI;
+using Volo.Abp.Modularity;
+
+public class MyProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.PreConfigure(options =>
+ {
+ options.Workspaces.ConfigureDefault(configuration =>
+ {
+ configuration.ConfigureChatClient(chatClientConfiguration =>
+ {
+ chatClientConfiguration.Builder = new ChatClientBuilder(
+ sp => new OllamaApiClient("http://localhost:11434", "mistral")
+ );
+ });
+
+ // Chat client only in this quick start
+ });
+ });
+ }
+}
+```
+
+Once configured, inject the default chat client:
+
+```csharp
+using Microsoft.Extensions.AI;
+
+public class MyService
+{
+ private readonly IChatClient _chatClient; // default chat client
+
+ public MyService(IChatClient chatClient)
+ {
+ _chatClient = chatClient;
+ }
+}
+```
+
+#### Workspace configuration
+
+Workspaces allow multiple, isolated AI configurations. Define workspace types (optionally decorated with `WorkspaceNameAttribute`). If omitted, the type’s full name is used.
+
+```csharp
+using Volo.Abp.AI;
+
+[WorkspaceName("GreetingAssistant")]
+public class GreetingAssistant // ChatClient-only workspace
+{
+}
+```
+
+Configure a ChatClient workspace:
+
+```csharp
+public class MyProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.PreConfigure(options =>
+ {
+ options.Workspaces.Configure(configuration =>
+ {
+ configuration.ConfigureChatClient(chatClientConfiguration =>
+ {
+ chatClientConfiguration.Builder = new ChatClientBuilder(
+ sp => new OllamaApiClient("http://localhost:11434", "mistral")
+ );
+
+ chatClientConfiguration.BuilderConfigurers.Add(builder =>
+ {
+ // Anything you want to do with the builder:
+ // builder.UseFunctionInvocation().UseLogging(); // For example
+ });
+ });
+ });
+ });
+ }
+}
+```
+
+### Semantic Kernel
+
+#### Default configuration
+
+
+```csharp
+public class MyProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.PreConfigure(options =>
+ {
+ options.Workspaces.ConfigureDefault(configuration =>
+ {
+ configuration.ConfigureKernel(kernelConfiguration =>
+ {
+ kernelConfiguration.Builder = Kernel.CreateBuilder()
+ .AddAzureOpenAIChatClient("...", "...");
+ });
+ // Note: Chat client is not configured here
+ });
+ });
+ }
+}
+```
+
+Once configured, inject the default kernel:
+
+```csharp
+using System.Threading.Tasks;
+using Volo.Abp.AI;
+
+public class MyService
+{
+ private readonly IKernelAccessor _kernelAccessor;
+ public MyService(IKernelAccessor kernelAccessor)
+ {
+ _kernelAccessor = kernelAccessor;
+ }
+
+ public async Task DoSomethingAsync()
+ {
+ var kernel = _kernelAccessor.Kernel; // Kernel might be null if no workspace is configured.
+
+ var result = await kernel.InvokeAsync(/*... */);
+ }
+}
+```
+
+#### Workspace configuration
+
+```csharp
+public class MyProjectModule : AbpModule
+{
+ public override void ConfigureServices(ServiceConfigurationContext context)
+ {
+ context.Services.PreConfigure(options =>
+ {
+ options.Workspaces.Configure(configuration =>
+ {
+ configuration.ConfigureKernel(kernelConfiguration =>
+ {
+ kernelConfiguration.Builder = Kernel.CreateBuilder()
+ .AddOpenAIChatCompletion("...", "...");
+ });
+ });
+ });
+ }
+}
+```
+
+#### Workspace usage
+
+```csharp
+using Microsoft.Extensions.AI;
+using Volo.Abp.AI;
+using Microsoft.SemanticKernel;
+
+public class PlanningService
+{
+ private readonly IKernelAccessor _kernelAccessor;
+ private readonly IChatClient _chatClient; // available even if only Kernel is configured
+
+ public PlanningService(
+ IKernelAccessor kernelAccessor,
+ IChatClient chatClient)
+ {
+ _kernelAccessor = kernelAccessor;
+ _chatClient = chatClient;
+ }
+
+ public async Task PlanAsync(string topic)
+ {
+ var kernel = _kernelAccessor.Kernel; // Microsoft.SemanticKernel.Kernel
+ // Use Semantic Kernel APIs if needed...
+
+ var response = await _chatClient.GetResponseAsync(
+ [new ChatMessage(ChatRole.User, $"Create a content plan for: {topic}")]
+ );
+ return response?.Message?.Text ?? string.Empty;
+ }
+}
+```
+
+## Options
+
+`AbpAIOptions` configuration pattern offers `ConfigureChatClient(...)` and `ConfigureKernel(...)` methods for configuration. These methods are defined in the `WorkspaceConfiguration` class. They are used to configure the `ChatClient` and `Kernel` respectively.
+
+`Builder` is set once and is used to build the `ChatClient` or `Kernel` instance. `BuilderConfigurers` is a list of actions that are applied to the `Builder` instance for incremental changes. These actions are executed in the order they are added.
+
+If a workspace configures only the Kernel, a chat client may still be exposed for that workspace through the Kernel’s service provider (when available).
+
+
+## Advanced Usage and Customizations
+
+### Addding Your Own DelegatingChatClient
+
+If you want to build your own decorator, implement a `DelegatingChatClient` derivative and provide an extension method that adds it to the `ChatClientBuilder` using `builder.Use(...)`.
+
+Example sketch:
+
+```csharp
+using Microsoft.Extensions.AI;
+
+public class SystemMessageChatClient : DelegatingChatClient
+{
+ public SystemMessageChatClient(IChatClient inner, string systemMessage) : base(inner)
+ {
+ SystemMessage = systemMessage;
+ }
+
+ public string SystemMessage { get; set; }
+
+ public override Task GetResponseAsync(IEnumerable messages, ChatOptions? options = null, CancellationToken cancellationToken = default)
+ {
+ // Mutate messages/options as needed, then call base
+ return base.GetResponseAsync(messages, options, cancellationToken);
+ }
+}
+
+public static class SystemMessageChatClientExtensions
+{
+ public static ChatClientBuilder UseSystemMessage(this ChatClientBuilder builder, string systemMessage)
+ {
+ return builder.Use(client => new SystemMessageChatClient(client, systemMessage));
+ }
+}
+```
+
+
+```cs
+chatClientConfiguration.BuilderConfigurers.Add(builder =>
+{
+ builder.UseSystemMessage("You are a helpful assistant that greets users in a friendly manner with their names.");
+});
+```
+
+## Technical Anatomy
+
+- `AbpAIModule`: Wires up configured workspaces, registers keyed services and default services for the `"Default"` workspace.
+- `AbpAIOptions`: Holds `Workspaces` and provides helper methods for internal keyed service naming.
+- `WorkspaceConfigurationDictionary` and `WorkspaceConfiguration`: Configure per-workspace Chat Client and Kernel.
+- `ChatClientConfiguration` and `KernelConfiguration`: Hold builders and a list of ordered builder configurers.
+- `WorkspaceNameAttribute`: Names a workspace; falls back to the type’s full name if not specified.
+- `IChatClient`: Typed chat client for a workspace.
+- `IKernelAccessor`: Provides access to the workspace’s `Kernel` instance if configured.
+- `AbpAIWorkspaceOptions`: Exposes `ConfiguredWorkspaceNames` for diagnostics.
+
+There are no database tables for this feature; it is a pure configuration and DI integration layer.
+
+## See Also
+
+- Microsoft.Extensions.AI (Chat Client)
+- Microsoft Semantic Kernel
\ No newline at end of file
diff --git a/docs/en/framework/infrastructure/blob-storing/memory.md b/docs/en/framework/infrastructure/blob-storing/memory.md
new file mode 100644
index 0000000000..0636ad3fb6
--- /dev/null
+++ b/docs/en/framework/infrastructure/blob-storing/memory.md
@@ -0,0 +1,35 @@
+# BLOB Storing Memory Provider
+
+Memory Storage Provider is used to store BLOBs in the memory. This is mainly used for unit testing purposes.
+
+> Read the [BLOB Storing document](../blob-storing) to understand how to use the BLOB storing system. This document only covers how to configure containers to use the memory.
+
+## Installation
+
+Use the ABP CLI to add [Volo.Abp.BlobStoring.Memory](https://www.nuget.org/packages/Volo.Abp.BlobStoring.Memory) NuGet package to your project:
+
+* Install the [ABP CLI](../../../cli) if you haven't installed before.
+* Open a command line (terminal) in the directory of the `.csproj` file you want to add the `Volo.Abp.BlobStoring.Memory` package.
+* Run `abp add-package Volo.Abp.BlobStoring.Memory` command.
+
+If you want to do it manually, install the [Volo.Abp.BlobStoring.Memory](https://www.nuget.org/packages/Volo.Abp.BlobStoring.Memory) NuGet package to your project and add `[DependsOn(typeof(AbpBlobStoringMemoryModule))]` to the [ABP module](../../architecture/modularity/basics.md) class inside your project.
+
+## Configuration
+
+Configuration is done in the `ConfigureServices` method of your [module](../../architecture/modularity/basics.md) class, as explained in the [BLOB Storing document](../blob-storing).
+
+**Example: Configure to use the Memory storage provider by default**
+
+````csharp
+Configure(options =>
+{
+ options.Containers.ConfigureDefault(container =>
+ {
+ container.UseMemory();
+ });
+});
+````
+
+`UseMemory` extension method is used to set the Memory Provider for a container.
+
+> See the [BLOB Storing document](../blob-storing) to learn how to configure this provider for a specific container.
diff --git a/docs/en/framework/infrastructure/index.md b/docs/en/framework/infrastructure/index.md
index 681e593aba..e5691612dc 100644
--- a/docs/en/framework/infrastructure/index.md
+++ b/docs/en/framework/infrastructure/index.md
@@ -3,6 +3,7 @@
ABP provides a complete infrastructure for creating real world software solutions with modern architectures based on the .NET platform. Each of the following documents explains an infrastructure feature:
* [Audit Logging](./audit-logging.md)
+* [Artificial Intelligence](./artificial-intelligence.md)
* [Background Jobs](./background-jobs/index.md)
* [Background Workers](./background-workers/index.md)
* [BLOB Storing](./blob-storing/index.md)
diff --git a/docs/en/framework/ui/angular/abp-window-service.md b/docs/en/framework/ui/angular/abp-window-service.md
index bc060f79b5..bd55c4d2d1 100644
--- a/docs/en/framework/ui/angular/abp-window-service.md
+++ b/docs/en/framework/ui/angular/abp-window-service.md
@@ -13,10 +13,9 @@ Firstly, ensure that the service is injected into the component or any other Ang
```js
import { AbpWindowService } from '@abp/ng.core';
+import { inject } from '@angular/core';
-constructor(private abpWindowService: AbpWindowService) { }
-// or
-// private abpWindowService = inject(AbpWindowService)
+private abpWindowService = inject(AbpWindowService)
```
### Downloading a Blob
diff --git a/docs/en/framework/ui/angular/component-replacement.md b/docs/en/framework/ui/angular/component-replacement.md
index e547b73531..e1a3af734f 100644
--- a/docs/en/framework/ui/angular/component-replacement.md
+++ b/docs/en/framework/ui/angular/component-replacement.md
@@ -13,13 +13,14 @@ Then, open the `app.component.ts` and execute the `add` method of `ReplaceableCo
```js
import { ReplaceableComponentsService } from '@abp/ng.core'; // imported ReplaceableComponentsService
import { eIdentityComponents } from '@abp/ng.identity'; // imported eIdentityComponents enum
+import { Component, inject } from '@angular/core';
//...
@Component(/* component metadata */)
export class AppComponent {
- constructor(
- private replaceableComponents: ReplaceableComponentsService, // injected the service
- ) {
+ private replaceableComponents = inject(ReplaceableComponentsService);
+
+ constructor() {
this.replaceableComponents.add({
component: YourNewRoleComponent,
key: eIdentityComponents.Roles,
@@ -56,12 +57,13 @@ Open `app.component.ts` in `src/app` folder and modify it as shown below:
import { ReplaceableComponentsService } from '@abp/ng.core'; // imported ReplaceableComponentsService
import { eThemeBasicComponents } from '@abp/ng.theme.basic'; // imported eThemeBasicComponents enum for component keys
import { MyApplicationLayoutComponent } from './my-application-layout/my-application-layout.component'; // imported MyApplicationLayoutComponent
+import { Component, inject } from '@angular/core';
@Component(/* component metadata */)
export class AppComponent {
- constructor(
- private replaceableComponents: ReplaceableComponentsService, // injected the service
- ) {
+ private replaceableComponents = inject(ReplaceableComponentsService);
+
+ constructor() {
this.replaceableComponents.add({
component: MyApplicationLayoutComponent,
key: eThemeBasicComponents.ApplicationLayout,
@@ -268,15 +270,15 @@ import { eThemeBasicComponents } from '@abp/ng.theme.basic'; // imported eThemeB
@Component(/* component metadata */)
export class AppComponent implements OnInit {
- constructor(..., private replaceableComponents: ReplaceableComponentsService) {} // injected ReplaceableComponentsService
+ private replaceableComponents = inject(ReplaceableComponentsService);
ngOnInit() {
//...
this.replaceableComponents.add({
- component: LogoComponent,
- key: eThemeBasicComponents.Logo,
- });
+ component: LogoComponent,
+ key: eThemeBasicComponents.Logo,
+ });
}
}
```
@@ -454,15 +456,15 @@ import { eThemeBasicComponents } from '@abp/ng.theme.basic'; // imported eThemeB
@Component(/* component metadata */)
export class AppComponent implements OnInit {
- constructor(..., private replaceableComponents: ReplaceableComponentsService) {} // injected ReplaceableComponentsService
+ private replaceableComponents = inject(ReplaceableComponentsService);
ngOnInit() {
//...
this.replaceableComponents.add({
- component: RoutesComponent,
- key: eThemeBasicComponents.Routes,
- });
+ component: RoutesComponent,
+ key: eThemeBasicComponents.Routes,
+ });
}
}
```
@@ -493,7 +495,7 @@ import {
SessionStateService,
LocalizationPipe
} from '@abp/ng.core';
-import { Component, Inject } from '@angular/core';
+import { Component, inject, Inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';
@@ -512,9 +514,13 @@ import snq from 'snq';
]
})
export class NavItemsComponent {
+ private configState = inject(ConfigStateService);
+ private authService = inject(AuthService);
+ private sessionState = inject(SessionStateService);
+ @Inject(NAVIGATE_TO_MANAGE_PROFILE) public navigateToManageProfile: any;
+
currentUser$: Observable = this.configState.getOne$('currentUser');
selectedTenant$ = this.sessionState.getTenant$();
-
languages$: Observable = this.configState.getDeep$('localization.languages');
get smallScreen(): boolean {
@@ -547,13 +553,6 @@ export class NavItemsComponent {
return this.sessionState.getLanguage();
}
- constructor(
- @Inject(NAVIGATE_TO_MANAGE_PROFILE) public navigateToManageProfile,
- private configState: ConfigStateService,
- private authService: AuthService,
- private sessionState: SessionStateService
- ) {}
-
onChangeLang(cultureName: string) {
this.sessionState.setLanguage(cultureName);
}
@@ -669,15 +668,15 @@ import { eThemeBasicComponents } from '@abp/ng.theme.basic'; // imported eThemeB
@Component(/* component metadata */)
export class AppComponent implements OnInit {
- constructor(..., private replaceableComponents: ReplaceableComponentsService) {} // injected ReplaceableComponentsService
+ private replaceableComponents = inject(ReplaceableComponentsService);
ngOnInit() {
//...
this.replaceableComponents.add({
- component: NavItemsComponent,
- key: eThemeBasicComponents.NavItems,
- });
+ component: NavItemsComponent,
+ key: eThemeBasicComponents.NavItems,
+ });
}
}
```
diff --git a/docs/en/framework/ui/angular/config-state-service.md b/docs/en/framework/ui/angular/config-state-service.md
index f0d3418898..72200ed696 100644
--- a/docs/en/framework/ui/angular/config-state-service.md
+++ b/docs/en/framework/ui/angular/config-state-service.md
@@ -8,12 +8,13 @@ In order to use the `ConfigStateService` you must inject it in your class as a d
```js
import { ConfigStateService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- private config = inject(ConfigStateService);
+ private config = inject(ConfigStateService);
}
```
@@ -126,10 +127,12 @@ You can get the application configuration response and set the `ConfigStateServi
```js
import { AbpApplicationConfigurationService, ConfigStateService } from '@abp/ng.core';
+import { inject } from '@angular/core';
private abpApplicationConfigurationService = inject(AbpApplicationConfigurationService);
private config = inject(ConfigStateService);
+
constructor() {
this.abpApplicationConfigurationService.get({ includeLocalizationResources: false }).subscribe(config => {
this.config.setState(config);
diff --git a/docs/en/framework/ui/angular/confirmation-service.md b/docs/en/framework/ui/angular/confirmation-service.md
index 3ff84f7dbe..96d05387bd 100644
--- a/docs/en/framework/ui/angular/confirmation-service.md
+++ b/docs/en/framework/ui/angular/confirmation-service.md
@@ -8,12 +8,13 @@ You do not have to provide the `ConfirmationService` at component level, because
```js
import { ConfirmationService } from '@abp/ng.theme.shared';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private confirmation: ConfirmationService) {}
+ private confirmation = inject(ConfirmationService);
}
```
@@ -36,8 +37,10 @@ You can subscribe to the confirmation closing event like below:
```js
import { Confirmation, ConfirmationService } from '@abp/ng.theme.shared';
+import { inject } from '@angular/core';
-constructor(private confirmation: ConfirmationService) {}
+// inside the class:
+private confirmation = inject(ConfirmationService);
this.confirmation
.warn('::WillBeDeleted', { key: '::AreYouSure', defaultValue: 'Are you sure?' })
@@ -132,7 +135,10 @@ this.confirmation.clear();
You can change icons with the `withConfirmationIcon()` method inside `provideAbpThemeShared` function in the app.config.ts. The changes will affect all confirmation popup in the project.
```ts
-import { provideAbpThemeShared, withConfirmationIcon } from '@abp/ng.theme.shared';
+import {
+ provideAbpThemeShared,
+ withConfirmationIcon,
+} from "@abp/ng.theme.shared";
export const appConfig: ApplicationConfig = {
providers: [
diff --git a/docs/en/framework/ui/angular/content-projection-service.md b/docs/en/framework/ui/angular/content-projection-service.md
index 0308b0353a..ca6c9d2144 100644
--- a/docs/en/framework/ui/angular/content-projection-service.md
+++ b/docs/en/framework/ui/angular/content-projection-service.md
@@ -8,12 +8,13 @@ You do not have to provide the `ContentProjectionService` at module or component
```js
import { ContentProjectionService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private contentProjectionService: ContentProjectionService) {}
+ private contentProjectionService = inject(ContentProjectionService);
}
```
diff --git a/docs/en/framework/ui/angular/dom-insertion-service.md b/docs/en/framework/ui/angular/dom-insertion-service.md
index 43d7d16ed1..0e084d7a4a 100644
--- a/docs/en/framework/ui/angular/dom-insertion-service.md
+++ b/docs/en/framework/ui/angular/dom-insertion-service.md
@@ -8,12 +8,13 @@ You do not have to provide the `DomInsertionService` at module or component leve
```js
import { DomInsertionService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private domInsertionService: DomInsertionService) {}
+ private domInsertionService = inject(DomInsertionService);
}
```
@@ -27,12 +28,13 @@ The first parameter of `insertContent` method expects a `ContentStrategy`. If yo
```js
import { DomInsertionService, CONTENT_STRATEGY } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private domInsertionService: DomInsertionService) {}
+ private domInsertionService = inject(DomInsertionService);
ngOnInit() {
const scriptElement = this.domInsertionService.insertContent(
@@ -54,12 +56,13 @@ If you pass a `StyleContentStrategy` instance as the first parameter of `insertC
```js
import { DomInsertionService, CONTENT_STRATEGY } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private domInsertionService: DomInsertionService) {}
+ private domInsertionService = inject(DomInsertionService);
ngOnInit() {
const styleElement = this.domInsertionService.insertContent(
@@ -81,15 +84,15 @@ If you pass the inserted `HTMLScriptElement` or `HTMLStyleElement` element as th
```js
import { DomInsertionService, CONTENT_STRATEGY } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
+ private domInsertionService = inject(DomInsertionService);
private styleElement: HTMLStyleElement;
- constructor(private domInsertionService: DomInsertionService) {}
-
ngOnInit() {
this.styleElement = this.domInsertionService.insertContent(
CONTENT_STRATEGY.AppendStyleToHead('body {margin: 0;}')
diff --git a/docs/en/framework/ui/angular/environment.md b/docs/en/framework/ui/angular/environment.md
index 8925b2b9d6..e32fc98aae 100644
--- a/docs/en/framework/ui/angular/environment.md
+++ b/docs/en/framework/ui/angular/environment.md
@@ -132,7 +132,8 @@ export const appConfig: ApplicationConfig = {
In order to use the `EnvironmentService` you must inject it in your class as a dependency.
```js
-import { EnvironmentService } from '@abp/ng.core';
+import { EnvironmentService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
diff --git a/docs/en/framework/ui/angular/features.md b/docs/en/framework/ui/angular/features.md
index 337f034aad..7e71632b1e 100644
--- a/docs/en/framework/ui/angular/features.md
+++ b/docs/en/framework/ui/angular/features.md
@@ -10,12 +10,13 @@ To use the `ConfigStateService`, you must inject it in your class as a dependenc
```js
import { ConfigStateService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private config: ConfigStateService) {}
+ private config = inject(ConfigStateService);
}
```
diff --git a/docs/en/framework/ui/angular/global-features.md b/docs/en/framework/ui/angular/global-features.md
index b9b167d176..5214ea2906 100644
--- a/docs/en/framework/ui/angular/global-features.md
+++ b/docs/en/framework/ui/angular/global-features.md
@@ -9,14 +9,14 @@ The `ConfigStateService.getGlobalFeatures` API allows you to get the enabled fea
````js
import { ConfigStateService } from '@abp/ng.core';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent implements OnInit {
- constructor(private config: ConfigStateService) {}
-
+ private config = inject(ConfigStateService);
+
ngOnInit(): void {
// Gets all enabled global features.
const getGlobalFeatures = this.config.getGlobalFeatures();
@@ -44,4 +44,3 @@ class DemoComponent implements OnInit {
}
}
-
diff --git a/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md b/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md
index 11a7f6dfb8..3e6d9ab328 100644
--- a/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md
+++ b/docs/en/framework/ui/angular/how-replaceable-components-work-with-extensions.md
@@ -17,6 +17,10 @@ yarn ng generate component my-roles/my-roles --flat --export
Open the generated `src/app/my-roles/my-roles.component.ts` file and replace its content with the following:
```js
+import { Component, Injector, inject, OnInit } from '@angular/core';
+import { FormGroup } from '@angular/forms';
+import { finalize } from 'rxjs/operators';
+
import { ListService, PagedAndSortedResultRequestDto, PagedResultDto } from '@abp/ng.core';
import { eIdentityComponents, RolesComponent } from '@abp/ng.identity';
import { IdentityRoleDto, IdentityRoleService } from '@abp/ng.identity/proxy';
@@ -27,9 +31,6 @@ import {
FormPropData,
generateFormFromProps
} from '@abp/ng.components/extensible';
-import { Component, Injector, OnInit } from '@angular/core';
-import { FormGroup } from '@angular/forms';
-import { finalize } from 'rxjs/operators';
@Component({
selector: 'app-my-roles',
@@ -40,13 +41,18 @@ import { finalize } from 'rxjs/operators';
provide: EXTENSIONS_IDENTIFIER,
useValue: eIdentityComponents.Roles,
},
- {
- provide: RolesComponent,
- useExisting: MyRolesComponent
- }
+ {
+ provide: RolesComponent,
+ useExisting: MyRolesComponent,
+ },
],
})
export class MyRolesComponent implements OnInit {
+ public readonly list = inject>(ListService);
+ protected readonly confirmationService = inject(ConfirmationService);
+ protected readonly injector = inject(Injector);
+ protected readonly service = inject(IdentityRoleService);
+
data: PagedResultDto = { items: [], totalCount: 0 };
form: FormGroup;
@@ -63,17 +69,10 @@ export class MyRolesComponent implements OnInit {
permissionManagementKey = ePermissionManagementComponents.PermissionManagement;
- onVisiblePermissionChange = event => {
+ onVisiblePermissionChange = (event) => {
this.visiblePermissions = event;
};
- constructor(
- public readonly list: ListService,
- protected confirmationService: ConfirmationService,
- protected injector: Injector,
- protected service: IdentityRoleService,
- ) {}
-
ngOnInit() {
this.hookToQuery();
}
@@ -253,13 +252,18 @@ export class MyRolesModule {}
As the last step, it is needs to be replaced the `RolesComponent` with the `MyRolesComponent`. Open the `app.component.ts` and modify its content as shown below:
```js
+import { Component, inject } from '@angular/core';
import { ReplaceableComponentsService } from '@abp/ng.core';
import { eIdentityComponents } from '@abp/ng.identity';
import { MyRolesComponent } from './my-roles/my-roles.component';
-@Component(/* component metadata */)
+@Component({
+ // component metadata
+})
export class AppComponent {
- constructor(private replaceableComponents: ReplaceableComponentsService) {
+ private replaceableComponents = inject(ReplaceableComponentsService);
+
+ constructor() {
this.replaceableComponents.add({ component: MyRolesComponent, key: eIdentityComponents.Roles });
}
}
diff --git a/docs/en/framework/ui/angular/http-error-reporter-service.md b/docs/en/framework/ui/angular/http-error-reporter-service.md
index 5e85fc95dc..e7f9a6f5a8 100644
--- a/docs/en/framework/ui/angular/http-error-reporter-service.md
+++ b/docs/en/framework/ui/angular/http-error-reporter-service.md
@@ -7,13 +7,14 @@ See the example below to learn how to report an error:
```ts
import { HttpErrorReporterService } from '@abp/ng.core';
import { HttpClient } from '@angular/common/http';
-import { Injectable } from '@angular/core';
+import { Injectable, inject } from '@angular/core';
import { of } from 'rxjs';
import { catchError } from 'rxjs/operators';
@Injectable()
export class SomeService {
- constructor(private http: HttpClient, private httpErrorReporter: HttpErrorReporterService) {}
+ private http = inject(HttpClient);
+ private httpErrorReporter = inject(HttpErrorReporterService);
getData() {
return this.http.get('http://example.com/get-data').pipe(
@@ -31,17 +32,19 @@ See the following example to learn listening the reported errors:
```ts
import { HttpErrorReporterService } from '@abp/ng.core';
import { HttpErrorResponse } from '@angular/common/http';
-import { Injectable } from '@angular/core';
+import { Injectable, inject } from '@angular/core';
@Injectable()
export class MyErrorHandler {
- constructor(private httpErrorReporter: HttpErrorReporterService) {
+ private httpErrorReporter = inject(HttpErrorReporterService);
+
+ constructor() {
this.handleErrors();
}
handleErrors() {
this.httpErrorReporter.reporter$.subscribe((err: HttpErrorResponse) => {
- // handle the errors here
+ // handle the errors here
});
}
}
diff --git a/docs/en/framework/ui/angular/http-requests.md b/docs/en/framework/ui/angular/http-requests.md
index ff73c6ee52..928a4f600b 100644
--- a/docs/en/framework/ui/angular/http-requests.md
+++ b/docs/en/framework/ui/angular/http-requests.md
@@ -31,12 +31,13 @@ In order to use the `RestService`, you must inject it in your class as a depende
```js
import { RestService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Injectable({
/* class metadata here */
})
class DemoService {
- constructor(private rest: RestService) {}
+ private rest = inject(RestService);
}
```
diff --git a/docs/en/framework/ui/angular/lazy-load-service.md b/docs/en/framework/ui/angular/lazy-load-service.md
index 8dedddfe7c..339f0f656b 100644
--- a/docs/en/framework/ui/angular/lazy-load-service.md
+++ b/docs/en/framework/ui/angular/lazy-load-service.md
@@ -11,12 +11,13 @@ You do not have to provide the `LazyLoadService` at module or component level, b
```js
import { LazyLoadService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private lazyLoadService: LazyLoadService) {}
+ private lazyLoadService = inject(LazyLoadService);
}
```
@@ -35,6 +36,7 @@ The first parameter of `load` method expects a `LoadingStrategy`. If you pass a
```js
import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
template: `
@@ -42,11 +44,11 @@ import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
`
})
class DemoComponent {
+ private lazyLoadService = inject(LazyLoadService);
+
libraryLoaded$ = this.lazyLoadService.load(
LOADING_STRATEGY.AppendAnonymousScriptToHead('/assets/some-library.js'),
);
-
- constructor(private lazyLoadService: LazyLoadService) {}
}
```
@@ -64,6 +66,7 @@ If you pass a `StyleLoadingStrategy` instance as the first parameter of `load` m
```js
import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
template: `
@@ -71,11 +74,11 @@ import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
`
})
class DemoComponent {
+ private lazyLoadService = inject(LazyLoadService);
+
stylesLoaded$ = this.lazyLoadService.load(
LOADING_STRATEGY.AppendAnonymousStyleToHead('/assets/some-styles.css'),
);
-
- constructor(private lazyLoadService: LazyLoadService) {}
}
```
@@ -114,7 +117,8 @@ A common usecase is **loading multiple scripts and/or styles before using a feat
```js
import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
-import { frokJoin } from 'rxjs';
+import { forkJoin } from 'rxjs';
+import { inject } from '@angular/core';
@Component({
template: `
@@ -122,6 +126,8 @@ import { frokJoin } from 'rxjs';
`
})
class DemoComponent {
+ private lazyLoad = inject(LazyLoadService);
+
private stylesLoaded$ = forkJoin(
this.lazyLoad.load(
LOADING_STRATEGY.PrependAnonymousStyleToHead('/assets/library-dark-theme.css'),
@@ -141,8 +147,6 @@ class DemoComponent {
);
scriptsAndStylesLoaded$ = forkJoin(this.scriptsLoaded$, this.stylesLoaded$);
-
- constructor(private lazyLoadService: LazyLoadService) {}
}
```
@@ -156,6 +160,7 @@ Another frequent usecase is **loading dependent scripts in order**:
```js
import { LazyLoadService, LOADING_STRATEGY } from '@abp/ng.core';
import { concat } from 'rxjs';
+import { inject } from '@angular/core';
@Component({
template: `
@@ -163,6 +168,8 @@ import { concat } from 'rxjs';
`
})
class DemoComponent {
+ private lazyLoad = inject(LazyLoadService);
+
scriptsLoaded$ = concat(
this.lazyLoad.load(
LOADING_STRATEGY.PrependAnonymousScriptToHead('/assets/library.js'),
@@ -171,8 +178,6 @@ class DemoComponent {
LOADING_STRATEGY.AppendAnonymousScriptToHead('/assets/script-that-requires-library.js'),
),
);
-
- constructor(private lazyLoadService: LazyLoadService) {}
}
```
diff --git a/docs/en/framework/ui/angular/list-service.md b/docs/en/framework/ui/angular/list-service.md
index b5b1af66ae..c6b0a2a35c 100644
--- a/docs/en/framework/ui/angular/list-service.md
+++ b/docs/en/framework/ui/angular/list-service.md
@@ -12,6 +12,7 @@
import { ListService } from '@abp/ng.core';
import { BookDto } from '../models';
import { BookService } from '../services';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
@@ -32,10 +33,10 @@ class BookComponent {
items: BookDto[] = [];
count = 0;
- constructor(
- public readonly list: ListService,
- private bookService: BookService,
- ) {
+ public readonly list = inject(ListService);
+ private bookService = inject(BookService);
+
+ constructor() {
// change ListService defaults here
this.list.maxResultCount = 20;
}
@@ -78,7 +79,7 @@ You can extend the query parameter of the `ListService`'s `hookToQuery` method.
Firstly, you should pass your own type to `ListService` as shown below:
```typescript
-constructor(public readonly list: ListService) { }
+public readonly list = inject(ListService);
```
Then update the `bookStreamCreator` constant like following:
diff --git a/docs/en/framework/ui/angular/localization.md b/docs/en/framework/ui/angular/localization.md
index 6d4b3ab411..5d14eb0333 100644
--- a/docs/en/framework/ui/angular/localization.md
+++ b/docs/en/framework/ui/angular/localization.md
@@ -71,9 +71,10 @@ First of all you should import the `LocalizationService` from **@abp/ng.core**
```js
import { LocalizationService } from '@abp/ng.core';
+import { inject } from '@angular/core';
class MyClass {
- constructor(private localizationService: LocalizationService) {}
+ private localizationService = inject(LocalizationService);
}
```
diff --git a/docs/en/framework/ui/angular/modal.md b/docs/en/framework/ui/angular/modal.md
index 5b091e07e2..7ff20d885a 100644
--- a/docs/en/framework/ui/angular/modal.md
+++ b/docs/en/framework/ui/angular/modal.md
@@ -132,12 +132,12 @@ See an example form inside a modal:
import { Component } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';
+import { inject } from '@angular/core';
@Component(/* component metadata */)
export class BookComponent {
private fb = inject(FormBuilder);
private service = inject(BookService);
-
form = this.fb.group({
author: [null, [Validators.required]],
name: [null, [Validators.required]],
@@ -147,7 +147,6 @@ export class BookComponent {
});
inProgress: boolean;
-
isModalOpen: boolean;
save() {
diff --git a/docs/en/framework/ui/angular/modifying-the-menu.md b/docs/en/framework/ui/angular/modifying-the-menu.md
index 21e1793c47..087f022dc3 100644
--- a/docs/en/framework/ui/angular/modifying-the-menu.md
+++ b/docs/en/framework/ui/angular/modifying-the-menu.md
@@ -47,12 +47,14 @@ You can add routes to the menu by calling the `add` method of `RoutesService`. I
```js
import { RoutesService, eLayoutType } from '@abp/ng.core';
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
@Component(/* component metadata */)
export class AppComponent {
- constructor(routes: RoutesService) {
- routes.add([
+ private routes = inject(RoutesService);
+
+ constructor() {
+ this.routes.add([
{
path: '/your-path',
name: 'Your navigation',
@@ -138,15 +140,16 @@ To get the route items as grouped we can use the `groupedVisible` (or Observable
```js
import { ABP, RoutesService, RouteGroup } from "@abp/ng.core";
-import { Component } from "@angular/core";
+import { Component, inject } from "@angular/core";
+import { Observable } from "rxjs";
@Component(/* component metadata */)
export class AppComponent {
+ private routes = inject(RoutesService);
+
visible: RouteGroup[] | undefined = this.routes.groupedVisible;
- //Or
- visible$:Observable[] | undefined> = this.routes.groupedVisible$;
-
- constructor(private routes: RoutesService) {}
+ // Or
+ visible$: Observable[] | undefined> = this.routes.groupedVisible$;
}
```
@@ -177,12 +180,14 @@ export const appConfig: ApplicationConfig = {
```typescript
import { RoutesService } from '@abp/ng.core';
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
@Component(/* component metadata */)
export class AppComponent {
- constructor(private routes: RoutesService) {
- routes.setSingularizeStatus(false);
+ private routes = inject(RoutesService);
+
+ constructor() {
+ this.routes.setSingularizeStatus(false);
}
}
```
@@ -311,7 +316,7 @@ You can add elements to the right part of the menu by calling the `addItems` met
```js
import { NavItemsService } from '@abp/ng.theme.shared';
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
@Component({
template: `
@@ -323,8 +328,10 @@ export class MySearchInputComponent {}
@Component(/* component metadata */)
export class AppComponent {
- constructor(private navItems: NavItemsService) {
- navItems.addItems([
+ private navItems = inject(NavItemsService);
+
+ constructor() {
+ this.navItems.addItems([
{
id: 'MySearchInput',
order: 1,
@@ -353,13 +360,15 @@ The `patchItem` method of `NavItemsService` finds an element by its `id` propert
```js
export class AppComponent {
- constructor(private navItems: NavItemsService) {
- navItems.patchItem(eThemeBasicComponents.Languages, {
+ private navItems = inject(NavItemsService);
+
+ constructor() {
+ this.navItems.patchItem(eThemeBasicComponents.Languages, {
requiredPolicy: 'new policy here',
order: 1,
});
- navItems.removeItem(eThemeBasicComponents.CurrentUser);
+ this.navItems.removeItem(eThemeBasicComponents.CurrentUser);
}
}
```
diff --git a/docs/en/framework/ui/angular/page-alerts.md b/docs/en/framework/ui/angular/page-alerts.md
index 4275b45f54..8af18dbc4d 100644
--- a/docs/en/framework/ui/angular/page-alerts.md
+++ b/docs/en/framework/ui/angular/page-alerts.md
@@ -8,12 +8,13 @@ You can simply import `PageAlertService` from `@abp/ng.theme.shared` and utilize
```js
import { PageAlertService } from '@abp/ng.theme.shared';
+import { inject } from '@angular/core';
@Component({
// ...
})
export class MyComponent {
- constructor(private service: PageAlertService) {}
+ private service = inject(PageAlertService);
showWarning() {
this.service.show({
diff --git a/docs/en/framework/ui/angular/page-component.md b/docs/en/framework/ui/angular/page-component.md
index f190597fcf..86fd1b8aea 100644
--- a/docs/en/framework/ui/angular/page-component.md
+++ b/docs/en/framework/ui/angular/page-component.md
@@ -175,7 +175,7 @@ export class MyPageRenderStrategy implements PageRenderStrategy {
* shouldRender can also return an Observable which means
* an async service can be used within.
- constructor(private service: SomeAsyncService) {}
+ service = inject(SomeAsyncService)
shouldRender(type: string) {
return this.service.checkTypeAsync(type).pipe(map(val => val.isTrue()));
diff --git a/docs/en/framework/ui/angular/permission-management-component-replacement.md b/docs/en/framework/ui/angular/permission-management-component-replacement.md
index 677100381a..c6041cc784 100644
--- a/docs/en/framework/ui/angular/permission-management-component-replacement.md
+++ b/docs/en/framework/ui/angular/permission-management-component-replacement.md
@@ -19,7 +19,7 @@ import {
import { LocaleDirection } from '@abp/ng.theme.shared';
import {
Component,
- EventEmitter, Inject, Input, Optional, Output, TrackByFunction
+ EventEmitter, Inject, inject, Input, Optional, Output, TrackByFunction
} from '@angular/core';
import { of } from 'rxjs';
import { finalize, switchMap, tap } from 'rxjs/operators';
@@ -42,16 +42,18 @@ type PermissionWithStyle = PermissionGrantInfoDto & {
})
export class PermissionManagementComponent
implements
- PermissionManagement.PermissionManagementComponentInputs,
- PermissionManagement.PermissionManagementComponentOutputs {
+ PermissionManagement.PermissionManagementComponentInputs,
+ PermissionManagement.PermissionManagementComponentOutputs {
+
+ private readonly service = inject(PermissionsService);
+ private readonly configState = inject(ConfigStateService);
+
protected _providerName: string;
@Input()
get providerName(): string {
if (this.replaceableData) return this.replaceableData.inputs.providerName;
-
return this._providerName;
}
-
set providerName(value: string) {
this._providerName = value;
}
@@ -60,10 +62,8 @@ export class PermissionManagementComponent
@Input()
get providerKey(): string {
if (this.replaceableData) return this.replaceableData.inputs.providerKey;
-
return this._providerKey;
}
-
set providerKey(value: string) {
this._providerKey = value;
}
@@ -72,10 +72,8 @@ export class PermissionManagementComponent
@Input()
get hideBadges(): boolean {
if (this.replaceableData) return this.replaceableData.inputs.hideBadges;
-
return this._hideBadges;
}
-
set hideBadges(value: boolean) {
this._hideBadges = value;
}
@@ -85,7 +83,6 @@ export class PermissionManagementComponent
get visible(): boolean {
return this._visible;
}
-
set visible(value: boolean) {
if (value === this._visible) return;
@@ -106,15 +103,10 @@ export class PermissionManagementComponent
@Output() readonly visibleChange = new EventEmitter();
data: GetPermissionListResultDto = { groups: [], entityDisplayName: null };
-
selectedGroup: PermissionGroupDto;
-
permissions: PermissionGrantInfoDto[] = [];
-
selectThisTab = false;
-
selectAllTab = false;
-
modalBusy = false;
trackByFn: TrackByFunction = (_, item) => item.name;
@@ -142,7 +134,6 @@ export class PermissionManagementComponent
get isVisible(): boolean {
if (!this.replaceableData) return this.visible;
-
return this.replaceableData.inputs.visible;
}
@@ -152,9 +143,7 @@ export class PermissionManagementComponent
public replaceableData: ReplaceableComponents.ReplaceableTemplateData<
PermissionManagement.PermissionManagementComponentInputs,
PermissionManagement.PermissionManagementComponentOutputs
- >,
- private service: PermissionsService,
- private configState: ConfigStateService
+ >
) {}
getChecked(name: string) {
@@ -162,17 +151,11 @@ export class PermissionManagementComponent
}
isGrantedByOtherProviderName(grantedProviders: ProviderInfoDto[]): boolean {
- if (grantedProviders.length) {
- return grantedProviders.findIndex(p => p.providerName !== this.providerName) > -1;
- }
- return false;
+ return grantedProviders?.some(p => p.providerName !== this.providerName);
}
onClickCheckbox(clickedPermission: PermissionGrantInfoDto, value) {
- if (
- clickedPermission.isGranted &&
- this.isGrantedByOtherProviderName(clickedPermission.grantedProviders)
- )
+ if (clickedPermission.isGranted && this.isGrantedByOtherProviderName(clickedPermission.grantedProviders))
return;
setTimeout(() => {
@@ -184,7 +167,6 @@ export class PermissionManagementComponent
} else if (clickedPermission.parentName === per.name && !clickedPermission.isGranted) {
return { ...per, isGranted: true };
}
-
return per;
});
@@ -255,16 +237,11 @@ export class PermissionManagementComponent
this.setTabCheckboxState();
}
-
submit() {
const unchangedPermissions = getPermissions(this.data.groups);
-
const changedPermissions: UpdatePermissionDto[] = this.permissions
.filter(per =>
- unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted ===
- per.isGranted
- ? false
- : true,
+ unchangedPermissions.find(unchanged => unchanged.name === per.name).isGranted !== per.isGranted
)
.map(({ name, isGranted }) => ({ name, isGranted }));
@@ -321,26 +298,23 @@ export class PermissionManagementComponent
this.replaceableData.outputs.visibleChange(visible);
}
}
-
+
shouldFetchAppConfig() {
const currentUser = this.configState.getOne('currentUser') as CurrentUserDto;
if (this.providerName === 'R') return currentUser.roles.some(role => role === this.providerKey);
-
if (this.providerName === 'U') return currentUser.id === this.providerKey;
return false;
}
}
-function findMargin(permissions: PermissionGrantInfoDto[], permission: PermissionGrantInfoDto) {
+function findMargin(permissions: PermissionGrantInfoDto[], permission: PermissionGrantInfoDto): number {
const parentPermission = permissions.find(per => per.name === permission.parentName);
-
if (parentPermission && parentPermission.parentName) {
let margin = 20;
- return (margin += findMargin(permissions, parentPermission));
+ return margin + findMargin(permissions, parentPermission);
}
-
return parentPermission ? 20 : 0;
}
@@ -461,12 +435,12 @@ Open `app.component.ts` in `src/app` folder and modify it as shown below:
```js
import { ReplaceableComponentsService } from '@abp/ng.core';
import { ePermissionManagementComponents } from '@abp/ng.permission-management';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { PermissionManagementComponent } from './permission-management/permission-management.component';
//...
export class AppComponent implements OnInit {
- constructor(private replaceableComponents: ReplaceableComponentsService) {} // injected ReplaceableComponentsService
+ private readonly replaceableComponents = inject(ReplaceableComponentsService); // injected ReplaceableComponentsService
ngOnInit() {
this.replaceableComponents.add({
diff --git a/docs/en/framework/ui/angular/permission-management.md b/docs/en/framework/ui/angular/permission-management.md
index 5d3ed64351..cb22b5863a 100644
--- a/docs/en/framework/ui/angular/permission-management.md
+++ b/docs/en/framework/ui/angular/permission-management.md
@@ -8,9 +8,10 @@ You can get permission as boolean value:
```js
import { PermissionService } from '@abp/ng.core';
+import { inject } from '@angular/core';
export class YourComponent {
- constructor(private permissionService: PermissionService) {}
+ private permissionService = inject(PermissionService);
ngOnInit(): void {
const canCreate = this.permissionService.getGrantedPolicy('AbpIdentity.Roles.Create');
@@ -83,14 +84,14 @@ In some cases, a custom permission management may be needed. All you need to do
```js
import { ConfigStateService, PermissionService } from '@abp/ng.core';
-import { Injectable } from '@angular/core';
+import { Injectable, inject } from '@angular/core';
@Injectable({
providedIn: 'root',
})
export class CustomPermissionService extends PermissionService {
- constructor(configStateService: ConfigStateService) {
- super(configStateService);
+ constructor() {
+ super(inject(ConfigStateService));
}
// This is an example to show how to override the methods
diff --git a/docs/en/framework/ui/angular/router-events.md b/docs/en/framework/ui/angular/router-events.md
index 817667cfb9..a41874ec10 100644
--- a/docs/en/framework/ui/angular/router-events.md
+++ b/docs/en/framework/ui/angular/router-events.md
@@ -14,9 +14,12 @@ import {
Router,
} from '@angular/router';
import { filter } from 'rxjs/operators';
+import { inject, Injectable } from '@angular/core';
@Injectable()
class SomeService {
+ private router = inject(Router);
+
navigationFinish$ = this.router.events.pipe(
filter(
event =>
@@ -26,8 +29,6 @@ class SomeService {
),
);
/* Observable */
-
- constructor(private router: Router) {}
}
```
@@ -38,10 +39,10 @@ import { RouterEvents } from '@abp/ng.core';
@Injectable()
class SomeService {
+ private routerEvents = inject(RouterEvents);
+
navigationFinish$ = this.routerEvents.getNavigationEvents('End', 'Error', 'Cancel');
/* Observable */
-
- constructor(private routerEvents: RouterEvents) {}
}
```
@@ -62,6 +63,8 @@ import { mapTo } from 'rxjs/operators';
@Injectable()
class SomeService {
+ private routerEvents = inject(RouterEvents);
+
navigationStart$ = this.routerEvents.getNavigationEvents('Start');
/* Observable */
@@ -73,8 +76,6 @@ class SomeService {
this.navigationFinish$.pipe(mapTo(false)),
);
/* Observable */
-
- constructor(private routerEvents: RouterEvents) {}
}
```
@@ -88,6 +89,8 @@ import { map } from 'rxjs/operators';
@Injectable()
class SomeService {
+ private routerEvents = inject(RouterEvents);
+
navigationEvent$ = this.routerEvents.getAllNavigationEvents();
/* Observable */
@@ -95,8 +98,6 @@ class SomeService {
map(event => event instanceof NavigationStart),
);
/* Observable */
-
- constructor(private routerEvents: RouterEvents) {}
}
```
@@ -127,7 +128,7 @@ class SomeService {
### How to Get Specific Router Events
-You can use `getEvents` to get a stream of router events matching given event constructors.
+You can use `getEvents` to get a stream of router events matching given event classes.
```js
import { RouterEvents } from '@abp/ng.core';
@@ -135,16 +136,16 @@ import { ActivationEnd, ChildActivationEnd } from '@angular/router';
@Injectable()
class SomeService {
+ private routerEvents = inject(RouterEvents);
+
moduleActivation$ = this.routerEvents.getEvents(ActivationEnd, ChildActivationEnd);
/* Observable */
-
- constructor(private routerEvents: RouterEvents) {}
}
```
### How to Get All Router Events
-You can use `getEvents` to get a stream of all router events without passing any event constructors. This is nothing different from accessing `events` property of `Router` and is added to the service just for convenience.
+You can use `getEvents` to get a stream of all router events without passing any event classes. This is nothing different from accessing `events` property of `Router` and is added to the service just for convenience.
```js
import { RouterEvents } from '@abp/ng.core';
@@ -152,9 +153,9 @@ import { ActivationEnd, ChildActivationEnd } from '@angular/router';
@Injectable()
class SomeService {
+ private routerEvents = inject(RouterEvents);
+
routerEvent$ = this.routerEvents.getAllEvents();
/* Observable */
-
- constructor(private routerEvents: RouterEvents) {}
}
```
diff --git a/docs/en/framework/ui/angular/service-proxies.md b/docs/en/framework/ui/angular/service-proxies.md
index 695e3027c4..23e17b9759 100644
--- a/docs/en/framework/ui/angular/service-proxies.md
+++ b/docs/en/framework/ui/angular/service-proxies.md
@@ -89,14 +89,15 @@ The `generate-proxy` command generates one service per back-end controller and a
A variable named `apiName` (available as of v2.4) is defined in each service. `apiName` matches the module's `RemoteServiceName`. This variable passes to the `RestService` as a parameter at each request. If there is no microservice API defined in the environment, `RestService` uses the default. See [getting a specific API endpoint from application config](./http-requests#how-to-get-a-specific-api-endpoint-from-application-config)
-The `providedIn` property of the services is defined as `'root'`. Therefore there is no need to provide them in a module. You can use them directly by injecting them into the constructor as shown below:
+The `providedIn` property of the services is defined as `'root'`. Therefore there is no need to provide them in a module. You can use them directly by injecting as shown below:
```js
import { BookService } from '@proxy/books';
+import { inject } from '@angular/core';
@Component(/* component metadata here */)
export class BookComponent implements OnInit {
- constructor(private service: BookService) {}
+ private service = inject(BookService);
ngOnInit() {
this.service.get().subscribe(
diff --git a/docs/en/framework/ui/angular/settings.md b/docs/en/framework/ui/angular/settings.md
index f81bc1594c..f6325c9a8d 100644
--- a/docs/en/framework/ui/angular/settings.md
+++ b/docs/en/framework/ui/angular/settings.md
@@ -10,12 +10,13 @@ To use the `ConfigStateService`, you must inject it in your class as a dependenc
```js
import { ConfigStateService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private config: ConfigStateService) {}
+ private config = inject(ConfigStateService);
}
```
diff --git a/docs/en/framework/ui/angular/subscription-service.md b/docs/en/framework/ui/angular/subscription-service.md
index e080f8f3fa..f098d556d4 100644
--- a/docs/en/framework/ui/angular/subscription-service.md
+++ b/docs/en/framework/ui/angular/subscription-service.md
@@ -8,6 +8,7 @@ You have to provide the `SubscriptionService` at component or directive level, b
```js
import { SubscriptionService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
@@ -16,7 +17,9 @@ import { SubscriptionService } from '@abp/ng.core';
class DemoComponent {
count$ = interval(1000);
- constructor(private subscription: SubscriptionService) {
+ private subscription = inject(SubscriptionService);
+
+ constructor() {
this.subscription.addOne(this.count$, console.log);
}
}
@@ -38,7 +41,7 @@ You can pass a `next` function and an `error` function.
providers: [SubscriptionService],
})
class DemoComponent implements OnInit {
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
const source$ = interval(1000);
@@ -61,7 +64,7 @@ Or, you can pass an observer.
providers: [SubscriptionService],
})
class DemoComponent implements OnInit {
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
const source$ = interval(1000);
@@ -87,7 +90,7 @@ There are two ways to do that. If you are not going to subscribe again, you may
providers: [SubscriptionService],
})
class DemoComponent implements OnInit {
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
this.subscription.addOne(interval(1000), console.log);
@@ -107,7 +110,7 @@ This will clear all subscriptions, but you will not be able to subscribe again.
providers: [SubscriptionService],
})
class DemoComponent implements OnInit {
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
this.subscription.addOne(interval(1000), console.log);
@@ -131,8 +134,7 @@ Sometimes, you may need to unsubscribe from a particular subscription but leave
})
class DemoComponent implements OnInit {
countSubscription: Subscription;
-
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
this.countSubscription = this.subscription.addOne(
@@ -159,8 +161,7 @@ You may want to take control of a particular subscription. In such a case, you m
})
class DemoComponent implements OnInit {
countSubscription: Subscription;
-
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
this.countSubscription = this.subscription.addOne(
@@ -186,7 +187,7 @@ Please use `isClosed` getter to check if `closeAll` was called before.
providers: [SubscriptionService],
})
class DemoComponent implements OnInit {
- constructor(private subscription: SubscriptionService) {}
+ private subscription = inject(SubscriptionService);
ngOnInit() {
this.subscription.addOne(interval(1000), console.log);
diff --git a/docs/en/framework/ui/angular/theming.md b/docs/en/framework/ui/angular/theming.md
index 1940fc331b..b19f713c71 100644
--- a/docs/en/framework/ui/angular/theming.md
+++ b/docs/en/framework/ui/angular/theming.md
@@ -105,12 +105,14 @@ The [Application Startup Template](../../../solution-templates/application-modul
```ts
import { RoutesService, eLayoutType } from '@abp/ng.core';
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
@Component(/* component metadata */)
export class AppComponent {
- constructor(routes: RoutesService) {
- routes.add([
+ private routes = inject(RoutesService);
+
+ constructor() {
+ this.routes.add([
{
path: '/your-path',
name: 'Your navigation',
@@ -141,7 +143,7 @@ See the [Modifying the Menu](modifying-the-menu.md) document to learn more about
````ts
import { NavItemsService } from '@abp/ng.theme.shared';
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
@Component({
template: `
@@ -153,8 +155,10 @@ export class MySearchInputComponent {}
@Component(/* component metadata */)
export class AppComponent {
- constructor(private navItems: NavItemsService) {
- navItems.addItems([
+ private navItems = inject(NavItemsService);
+
+ constructor() {
+ this.navItems.addItems([
{
id: 'MySearchInput',
order: 1,
@@ -184,25 +188,25 @@ Language Selection toolbar item is generally a dropdown that is used to switch b
**Example: Get the currently selected language**
````ts
-import {SessionStateService} from '@abp/ng.core';
+import { SessionStateService } from '@abp/ng.core';
+import { inject } from '@angular/core';
//...
-constructor(private sessionState: SessionStateService) {
- const lang = this.sessionState.getLanguage()
-}
+const sessionState = inject(SessionStateService);
+const lang = sessionState.getLanguage();
````
**Example: Set the selected language**
````ts
-import {SessionStateService} from '@abp/ng.core';
+import { SessionStateService } from '@abp/ng.core';
+import { inject } from '@angular/core';
//...
-constructor(private sessionState: SessionStateService) {
- const lang = this.sessionState.setLanguage('en')
-}
+const sessionState = inject(SessionStateService);
+sessionState.setLanguage('en');
````
@@ -219,7 +223,7 @@ All of the options are shown below. You can choose either of them.
````ts
import { eUserMenuItems } from '@abp/ng.theme.basic';
import { UserMenuService } from '@abp/ng.theme.shared';
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
import { Router } from '@angular/router';
// make sure that you import this component in a NgModule
@@ -234,20 +238,23 @@ import { Router } from '@angular/router';
})
export class UserMenuItemComponent {
// you can inject the data through `INJECTOR_PIPE_DATA_TOKEN` token
- constructor(@Inject(INJECTOR_PIPE_DATA_TOKEN) public data: UserMenu) {}
+ public data = inject(INJECTOR_PIPE_DATA_TOKEN);
}
@Component({/* component metadata */})
export class AppComponent {
- constructor(private userMenu: UserMenuService, private router: Router) {
+ private userMenu = inject(UserMenuService);
+ private router = inject(Router);
+
+ constructor() {
this.userMenu.addItems([
{
id: 'UserMenu.MyAccount',
order: 1,
-
+
// HTML example
html: `My account`,
-
+
// text template example
textTemplate: {
text: 'AbpAccount::MyAccount',
diff --git a/docs/en/framework/ui/angular/toaster-service.md b/docs/en/framework/ui/angular/toaster-service.md
index a6c65ccb72..2737e1067e 100644
--- a/docs/en/framework/ui/angular/toaster-service.md
+++ b/docs/en/framework/ui/angular/toaster-service.md
@@ -8,12 +8,13 @@ You do not have to provide the `ToasterService` at component level, because it i
```js
import { ToasterService } from '@abp/ng.theme.shared';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
})
class DemoComponent {
- constructor(private toaster: ToasterService) {}
+ private toaster = inject(ToasterService);
}
```
@@ -36,22 +37,23 @@ Options can be passed as the third parameter to `success`, `warn`, `error`, and
```js
import { Toaster, ToasterService } from '@abp/ng.theme.shared';
-//...
+import { inject } from '@angular/core';
-constructor(private toaster: ToasterService) {}
+// inside the class
+private toaster = inject(ToasterService);
//...
const options: Partial = {
- life: 10000,
- sticky: false,
- closable: true,
- tapToDismiss: true,
- messageLocalizationParams: ['Demo', '1'],
- titleLocalizationParams: [],
- iconClass: 'custom-icon-name';
- };
-
- this.toaster.error('AbpUi::EntityNotFoundErrorMessage', 'AbpUi::Error', options);
+ life: 10000,
+ sticky: false,
+ closable: true,
+ tapToDismiss: true,
+ messageLocalizationParams: ['Demo', '1'],
+ titleLocalizationParams: [],
+ iconClass: 'custom-icon-name'
+};
+
+this.toaster.error('AbpUi::EntityNotFoundErrorMessage', 'AbpUi::Error', options);
```
- `life` option is the closing time in milliseconds. Default value is `5000`.
@@ -93,15 +95,16 @@ If you want the ABP to utilize 3rd party libraries for the toasters instead of t
```js
// your-custom-toaster.service.ts
-import { Injectable } from '@angular/core';
+import { Injectable, inject } from '@angular/core';
import { Config, LocalizationService } from '@abp/ng.core';
import { Toaster } from '@abp/ng.theme.shared';
import { ToastrService } from 'ngx-toastr';
@Injectable()
export class CustomToasterService implements Toaster.Service {
- constructor(private toastr: ToastrService, private localizationService: LocalizationService) {}
-
+ private toastr = inject(ToastrService);
+ private localizationService = inject(LocalizationService)
+
error(
message: Config.LocalizationParam,
title?: Config.LocalizationParam,
diff --git a/docs/en/framework/ui/angular/track-by-service.md b/docs/en/framework/ui/angular/track-by-service.md
index a7df7b80b6..84159f12de 100644
--- a/docs/en/framework/ui/angular/track-by-service.md
+++ b/docs/en/framework/ui/angular/track-by-service.md
@@ -10,6 +10,7 @@ You do not have to provide the `TrackByService` at module or component level, be
```js
import { TrackByService } from '@abp/ng.core';
+import { inject } from '@angular/core';
@Component({
/* class metadata here */
@@ -17,7 +18,7 @@ import { TrackByService } from '@abp/ng.core';
class DemoComponent {
list: Item[];
- constructor(public readonly track: TrackByService- ) {}
+ public readonly track = inject(TrackByService
- );
}
```
diff --git a/docs/en/framework/ui/react-native/index.md b/docs/en/framework/ui/react-native/index.md
index 4b6a0b5ec7..0f39752a82 100644
--- a/docs/en/framework/ui/react-native/index.md
+++ b/docs/en/framework/ui/react-native/index.md
@@ -1,7 +1,7 @@
````json
//[doc-params]
{
- "Tiered": ["No", "Yes"]
+ "Architecture": ["Monolith", "Tiered", "Microservice"]
}
````
@@ -20,15 +20,23 @@ Please follow the steps below to prepare your development environment for React
1. **Install Node.js:** Please visit [Node.js downloads page](https://nodejs.org/en/download/) and download proper Node.js v20.11+ installer for your OS. An alternative is to install [NVM](https://github.com/nvm-sh/nvm) and use it to have multiple versions of Node.js in your operating system.
2. **[Optional] Install Yarn:** You may install Yarn v1 (not v2) following the instructions on [the installation page](https://classic.yarnpkg.com/en/docs/install). Yarn v1 delivers an arguably better developer experience compared to npm v6 and below. You may skip this step and work with npm, which is built-in in Node.js, instead.
3. **[Optional] Install VS Code:** [VS Code](https://code.visualstudio.com/) is a free, open-source IDE which works seamlessly with TypeScript. Although you can use any IDE including Visual Studio or Rider, VS Code will most likely deliver the best developer experience when it comes to React Native projects.
-4. **Install an Emulator:** React Native applications need an Android emulator or an iOS simulator to run on your OS. See the [Android Studio Emulator](https://docs.expo.io/workflow/android-simulator/) or [iOS Simulator](https://docs.expo.io/workflow/ios-simulator/) on expo.io documentation to learn how to set up an emulator.
+4. **Install an Emulator/Simulator:** React Native applications need an Android emulator or an iOS simulator to run on your OS. If you do not have Android Studio installed and configured on your system, we recommend [setting up android emulator without android studio](setting-up-android-emulator.md).
+
+If you prefer the other way, you can check the [Android Studio Emulator](https://docs.expo.dev/workflow/android-studio-emulator/) or [iOS Simulator](https://docs.expo.dev/workflow/ios-simulator/) on expo.io documentation to learn how to set up an emulator.
## How to Start a New React Native Project
You have multiple options to initiate a new React Native project that works with ABP:
-### 1. Using ABP CLI
+### 1. Using ABP Studio
+
+ABP Studio application is the most convenient and flexible way to initiate a React Native application based on ABP framework. You can follow the [tool documentation](../../../studio) and select the option below:
+
+
+
+### 2. Using ABP CLI
-ABP CLI is probably the most convenient and flexible way to initiate an ABP solution with a React Native application. Simply [install the ABP CLI](../../../cli) and run the following command in your terminal:
+ABP CLI is another way of creating an ABP solution with a React Native application. Simply [install the ABP CLI](../../../cli) and run the following command in your terminal:
```shell
abp new MyCompanyName.MyProjectName -csf -u -m react-native
@@ -38,33 +46,209 @@ abp new MyCompanyName.MyProjectName -csf -u -m react-native
This command will prepare a solution with an **Angular** or an **MVC** (depends on your choice), a **.NET Core**, and a **React Native** project in it.
-### 2. Generating a CLI Command from Get Started Page
-
-You can generate a CLI command on the [get started page of the abp.io website](https://abp.io/get-started). Then, use the command on your terminal to create a new [Startup Template](../../../solution-templates).
-
## How to Configure & Run the Backend
> React Native application does not trust the auto-generated .NET HTTPS certificate. You should use **HTTP** during the development.
-> When you are using OpenIddict, You should remove 'clientSecret' on Environment.js (if exists) and disable "HTTPS-only" settings. (Openiddict has default since Version 6.0)
-
-A React Native application running on an Android emulator or a physical phone **can not connect to the backend** on `localhost`. To fix this problem, it is necessary to run the backend application on your **local IP address**.
-
-{{ if Tiered == "No"}}
-
-
-- Open the `appsettings.json` file in the `.HttpApi.Host` folder. Replace the `localhost` address on the `SelfUrl` and `Authority` properties with your local IP address.
-- Open the `launchSettings.json` file in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address.
-
-{{ else if Tiered == "Yes" }}
-
-
-
-- Open the `appsettings.json` file in the `.AuthServer` folder. Replace the `localhost` address on the `SelfUrl` property with your local IP address.
-- Open the `launchSettings.json` file in the `.AuthServer/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address.
-- Open the `appsettings.json` file in the `.HttpApi.Host` folder. Replace the `localhost` address on the `Authority` property with your local IP address.
-- Open the `launchSettings.json` file in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address.
-
+A React Native application running on an Android emulator or a physical phone **can not connect to the backend** on `localhost`. To fix this problem, it is necessary to run the backend application using the `Kestrel` configuration.
+
+{{ if Architecture == "Monolith" }}
+
+
+
+- Open the `appsettings.json` file in the `.DbMigrator` folder. Replace the `localhost` address on the `RootUrl` property with your local IP address. Then, run the database migrator.
+- Open the `appsettings.Development.json` file in the `.HttpApi.Host` folder. Add this configuration to accept global requests just to test the react native application on the development environment.
+
+ ```json
+ {
+ "Kestrel": {
+ "Endpoints": {
+ "Http": {
+ "Url": "http://0.0.0.0:44323" //replace with your host port
+ }
+ }
+ }
+ }
+ ```
+
+{{ else if Architecture == "Tiered" }}
+
+
+
+- Open the `appsettings.json` file in the `.DbMigrator` folder. Replace the `localhost` address on the `RootUrl` property with your local IP address. Then, run the database migrator.
+- Open the `appsettings.Development.json` file in the `.AuthServer` folder. Add this configuration to accept global requests just to test the react native application on the development environment.
+
+ ```json
+ {
+ "Kestrel": {
+ "Endpoints": {
+ "Http": {
+ "Url": "http://0.0.0.0:44337"
+ }
+ }
+ }
+ }
+ ```
+
+- Open the `appsettings.Development.json` file in the `.HttpApi.Host` folder. Add this configuration to accept global requests again. In addition, you will need to introduce the authentication server as mentioned above.
+
+ ```json
+ {
+ "Kestrel": {
+ "Endpoints": {
+ "Http": {
+ "Url": "http://0.0.0.0:44389" //replace with your host port
+ }
+ }
+ },
+ "AuthServer": {
+ "Authority": "http://192.168.1.37:44337/", //replace with your IP and authentication port
+ "MetaAddress": "http://192.168.1.37:44337/",
+ "RequireHttpsMetadata": false,
+ "Audience": "MyTieredProject" //replace with your application name
+ }
+ }
+ ```
+
+{{ else if Architecture == "Microservice" }}
+
+
+
+- Open the `appsettings.Development.json` file in the `.AuthServer` folder. Add this configuration to accept global requests just to test the react native application on the development environment.
+
+ ```json
+ {
+ "App": {
+ "EnablePII": true
+ },
+ "Kestrel": {
+ "Endpoints": {
+ "Http": {
+ "Url": "http://0.0.0.0:44319"
+ }
+ }
+ }
+ }
+ ```
+
+- Open the `appsettings.Development.json` file in the `.AdministrationService` folder. Add this configuration to accept global requests just to test the react native application on the development environment. You should also provide the authentication server configuration. In addition, you need to apply the same process for all the services you would use in the react native application.
+
+ ```json
+ {
+ "App": {
+ "EnablePII": true
+ },
+ "Kestrel": {
+ "Endpoints": {
+ "Http": {
+ "Url": "http://0.0.0.0:44357"
+ }
+ }
+ },
+ "AuthServer": {
+ "Authority": "http://192.168.1.36:44319/",
+ "MetaAddress": "http://192.168.1.36:44319/",
+ "RequireHttpsMetadata": false,
+ "Audience": "AdministrationService"
+ }
+ }
+ ```
+
+- Update the `appsettings.json` file in the `.IdentityService` folder. Replace the `localhost` configuration with your local IP address for the react native application
+
+ ```json
+ {
+ //...
+ "OpenIddict": {
+ "Applications": {
+ //...
+ "ReactNative": {
+ "RootUrl": "exp://192.168.1.36:19000"
+ },
+ "MobileGateway": {
+ "RootUrl": "http://192.168.1.36:44347/"
+ },
+ //...
+ },
+ //...
+ }
+ }
+ ```
+
+- Lastly, update the mobile gateway configurations as following:
+
+ ```json
+ //gateways/mobile/MyMicroserviceProject.MobileGateway/Properties/launchSettings.json
+ {
+ "iisSettings": {
+ "windowsAuthentication": false,
+ "anonymousAuthentication": true,
+ "iisExpress": {
+ "applicationUrl": "http://192.168.1.36:44347" //update with your IP address
+ }
+ },
+ "profiles": {
+ //...
+ "MyMicroserviceProject.MobileGateway": {
+ "commandName": "Project",
+ "dotnetRunMessages": "true",
+ "launchBrowser": true,
+ "applicationUrl": "http://192.168.1.36:44347",
+ "environmentVariables": {
+ "ASPNETCORE_ENVIRONMENT": "Development"
+ }
+ }
+ }
+ }
+ ```
+
+ ```json
+ //gateways/mobile/MyMicroserviceProject.MobileGateway/appsettings.json
+ {
+ //Update clusters with your IP address
+ //...
+ "ReverseProxy": {
+ //...
+ "Clusters": {
+ "AuthServer": {
+ "Destinations": {
+ "AuthServer": {
+ "Address": "http://192.168.1.36:44319/"
+ }
+ }
+ },
+ "Administration": {
+ "Destinations": {
+ "Administration": {
+ "Address": "http://192.168.1.36:44357/"
+ }
+ }
+ },
+ "Saas": {
+ "Destinations": {
+ "Saas": {
+ "Address": "http://192.168.1.36:44330/"
+ }
+ }
+ },
+ "Identity": {
+ "Destinations": {
+ "Identity": {
+ "Address": "http://192.168.1.36:44397/"
+ }
+ }
+ },
+ "Language": {
+ "Destinations": {
+ "Identity": {
+ "Address": "http://192.168.1.36:44310/"
+ }
+ }
+ }
+ }
+ }
+ }
+ ```
{{ end }}
Run the backend application as described in the [getting started document](../../../get-started).
@@ -73,7 +257,7 @@ Run the backend application as described in the [getting started document](../..
## How to disable the Https-only settings of OpenIddict
-Open the {{ if Tiered == "No" }}`MyProjectNameHttpApiHostModule`{{ else if Tiered == "Yes" }}`MyProjectNameAuthServerModule`{{ end }} project and copy-paste the below code-block to the `PreConfigureServices` method:
+Open the {{ if Architecture == "Monolith" }}`MyProjectNameHttpApiHostModule`{{ if Architecture == "Tiered" }}`MyProjectNameAuthServerModule`{{ end }} project and copy-paste the below code-block to the `PreConfigureServices` method:
```csharp
#if DEBUG
@@ -89,21 +273,27 @@ Open the {{ if Tiered == "No" }}`MyProjectNameHttpApiHostModule`{{ else if Tiere
1. Make sure the [database migration is complete](../../../get-started?UI=NG&DB=EF&Tiered=No#create-the-database) and the [API is up and running](../../../get-started?UI=NG&DB=EF&Tiered=No#run-the-application).
2. Open `react-native` folder and run `yarn` or `npm install` if you have not already.
-3. Open the `Environment.js` in the `react-native` folder and replace the `localhost` address on the `apiUrl` and `issuer` properties with your local IP address as shown below:
+3. Open the `Environment.ts` in the `react-native` folder and replace the `localhost` address on the `apiUrl` and `issuer` properties with your local IP address as shown below:
+
+{{ if Architecture == "Monolith" }}
-
+
-{{ if Tiered == "Yes" }}
+{{ else if Architecture == "Tiered" }}
+
+
> Make sure that `issuer` matches the running address of the `.AuthServer` project, `apiUrl` matches the running address of the `.HttpApi.Host` or `.Web` project.
-{{else}}
+{{ else }}
+
+
-> Make sure that `issuer` and `apiUrl` matches the running address of the `.HttpApi.Host` or `.Web` project.
+> Make sure that `issuer` matches the running address of the `.AuthServer` project, `apiUrl` matches the running address of the `.AuthServer` project.
{{ end }}
-4. Run `yarn start` or `npm start`. Wait for the Expo CLI to print the opitons.
+1. Run `yarn start` or `npm start`. Wait for the Expo CLI to print the opitons.
> The React Native application was generated with [Expo](https://expo.io/). Expo is a set of tools built around React Native to help you quickly start an app and, while it has many features.
@@ -113,14 +303,14 @@ In the above image, you can start the application with an Android emulator, an i
### Expo
-
+
### Android Studio
1. Start the emulator in **Android Studio** before running the `yarn start` or `npm start` command.
2. Press **a** to open in Android Studio.
-
+
Enter **admin** as the username and **1q2w3E\*** as the password to login to the application.
diff --git a/docs/en/framework/ui/react-native/setting-up-android-emulator.md b/docs/en/framework/ui/react-native/setting-up-android-emulator.md
new file mode 100644
index 0000000000..8ead542a76
--- /dev/null
+++ b/docs/en/framework/ui/react-native/setting-up-android-emulator.md
@@ -0,0 +1,127 @@
+# Setting Up Android Emulator Without Android Studio (Windows, macOS, Linux)
+
+This guide explains how to install and run an Android emulator **without Android Studio**, using only **Command Line Tools**.
+
+---
+
+## 1. Download Required Tools
+
+Go to: [https://developer.android.com/studio#command-tools](https://developer.android.com/studio#command-tools)
+Download the "Command line tools only" package for your OS:
+
+- **Windows:** `commandlinetools-win-*.zip`
+- **macOS:** `commandlinetools-mac-*.zip`
+- **Linux:** `commandlinetools-linux-*.zip`
+
+---
+
+## 2. Create the Required Directory Structure
+
+### Windows:
+```
+C:\Android\
+└── cmdline-tools\
+ └── latest\
+ └── [extract all files from the zip here]
+```
+
+### macOS / Linux:
+```
+~/Android/
+└── cmdline-tools/
+ └── latest/
+ └── [extract all files from the zip here]
+```
+
+> You need to create the `latest` folder manually.
+
+---
+
+## 3. Set Environment Variables
+
+### Windows (temporary for CMD session):
+```cmd
+set PATH=C:\Android\cmdline-tools\latest\bin;C:\Android\platform-tools;C:\Android\emulator;%PATH%
+```
+
+### macOS / Linux:
+Add the following to your `.bashrc`, `.zshrc`, or `.bash_profile` file:
+
+```bash
+export ANDROID_HOME=$HOME/Android
+export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
+export PATH=$PATH:$ANDROID_HOME/platform-tools
+export PATH=$PATH:$ANDROID_HOME/emulator
+```
+
+> Apply the changes:
+```bash
+source ~/.zshrc # or ~/.bashrc if you're using bash
+```
+
+---
+
+## 4. Install SDK Components
+
+Install platform tools, emulator, and a system image:
+
+```bash
+sdkmanager --sdk_root=$ANDROID_HOME "platform-tools" "platforms;android-34" "system-images;android-34;google_apis;x86_64" "emulator"
+```
+
+> On Windows, replace `$ANDROID_HOME` with `--sdk_root=C:\Android`.
+
+---
+
+## 5. Create an AVD (Android Virtual Device)
+
+### List available devices:
+```bash
+avdmanager list devices
+```
+
+### Create your AVD:
+```bash
+avdmanager create avd -n myEmu -k "system-images;android-34;google_apis;x86_64" --device "pixel"
+```
+
+---
+
+## 6. Start the Emulator
+
+```bash
+emulator -avd myEmu
+```
+
+The emulator window should open
+
+---
+
+## Extra Tools and Commands
+
+### List connected devices with ADB:
+```bash
+adb devices
+```
+
+### Install an APK:
+```bash
+adb install myApp.apk
+```
+
+---
+
+## Troubleshooting
+
+| Problem | Explanation |
+|--------|-------------|
+| `sdkmanager not found` | Make sure `PATH` includes the `latest/bin` directory |
+| `x86_64 system image not found` | Make sure you've downloaded it using `sdkmanager` |
+| `emulator not found` | Add the `emulator` directory to `PATH` |
+| `setx` truncates path (Windows) | Use GUI to update environment variables manually |
+
+---
+
+## Summary
+
+You can now run an Android emulator without installing Android Studio, entirely through the command line. This emulator can be used for React Native or any mobile development framework.
diff --git a/docs/en/get-started/images/abp-studio-mobile-sample.gif b/docs/en/get-started/images/abp-studio-mobile-sample.gif
index 654a92eef9..4301c451b6 100644
Binary files a/docs/en/get-started/images/abp-studio-mobile-sample.gif and b/docs/en/get-started/images/abp-studio-mobile-sample.gif differ
diff --git a/docs/en/get-started/layered-web-application.md b/docs/en/get-started/layered-web-application.md
index 3dcbb90f75..c1e08fdb93 100644
--- a/docs/en/get-started/layered-web-application.md
+++ b/docs/en/get-started/layered-web-application.md
@@ -242,6 +242,8 @@ You can use `admin` as username and `1q2w3E*` as default password to login to th
> Note: If you haven't selected a mobile framework, you can skip this step.
+Before starting the mobile application, ensure that you have configured it for [react-native](../framework/ui/react-native) or [MAUI](../framework/ui/maui).
+
You can start the following application(s):
{{ if Tiered == "Yes" }}
@@ -255,8 +257,7 @@ You can start the following application(s):
{{ else }}
- `Acme.BookStore.Web`
{{ end }}
-
-Before starting the mobile application, ensure that you configure it for [react-native](../framework/ui/react-native) or [MAUI](../framework/ui/maui).
+- `react-native` or `Acme.Bookstore.Maui`

diff --git a/docs/en/images/author-input-in-book-form.png b/docs/en/images/author-input-in-book-form.png
index f20254cce7..5204a234e6 100644
Binary files a/docs/en/images/author-input-in-book-form.png and b/docs/en/images/author-input-in-book-form.png differ
diff --git a/docs/en/images/author-list-with-options.png b/docs/en/images/author-list-with-options.png
index 4066938914..c6c98e8f5e 100644
Binary files a/docs/en/images/author-list-with-options.png and b/docs/en/images/author-list-with-options.png differ
diff --git a/docs/en/images/author-list.png b/docs/en/images/author-list.png
index b6a73d8f8d..59d5ad689e 100644
Binary files a/docs/en/images/author-list.png and b/docs/en/images/author-list.png differ
diff --git a/docs/en/images/authors-in-book-form.png b/docs/en/images/authors-in-book-form.png
index 2e0a13a22c..260abddefa 100644
Binary files a/docs/en/images/authors-in-book-form.png and b/docs/en/images/authors-in-book-form.png differ
diff --git a/docs/en/images/book-list-with-author.png b/docs/en/images/book-list-with-author.png
index c5ab6541e8..6cf46aa2e9 100644
Binary files a/docs/en/images/book-list-with-author.png and b/docs/en/images/book-list-with-author.png differ
diff --git a/docs/en/images/book-list-with-options.png b/docs/en/images/book-list-with-options.png
index a6bf87e71f..e327ae3bf5 100644
Binary files a/docs/en/images/book-list-with-options.png and b/docs/en/images/book-list-with-options.png differ
diff --git a/docs/en/images/book-list.png b/docs/en/images/book-list.png
index f14ac93a64..0cd0b74686 100644
Binary files a/docs/en/images/book-list.png and b/docs/en/images/book-list.png differ
diff --git a/docs/en/images/book-store-menu-item.png b/docs/en/images/book-store-menu-item.png
index f190f176ce..cc7b438d74 100644
Binary files a/docs/en/images/book-store-menu-item.png and b/docs/en/images/book-store-menu-item.png differ
diff --git a/docs/en/images/books-menu-item.png b/docs/en/images/books-menu-item.png
index eb9c1042fd..bc80353bc0 100644
Binary files a/docs/en/images/books-menu-item.png and b/docs/en/images/books-menu-item.png differ
diff --git a/docs/en/images/create-author.png b/docs/en/images/create-author.png
index 69e36bc50d..746c916473 100644
Binary files a/docs/en/images/create-author.png and b/docs/en/images/create-author.png differ
diff --git a/docs/en/images/create-book-button-visibility.png b/docs/en/images/create-book-button-visibility.png
index 1b153f9f65..e7f6021175 100644
Binary files a/docs/en/images/create-book-button-visibility.png and b/docs/en/images/create-book-button-visibility.png differ
diff --git a/docs/en/images/create-book-icon.png b/docs/en/images/create-book-icon.png
index 4d4be5ef30..e24f2f53cf 100644
Binary files a/docs/en/images/create-book-icon.png and b/docs/en/images/create-book-icon.png differ
diff --git a/docs/en/images/create-book.png b/docs/en/images/create-book.png
index d7a9675c72..c931c60a0d 100644
Binary files a/docs/en/images/create-book.png and b/docs/en/images/create-book.png differ
diff --git a/docs/en/images/delete-author-alert.png b/docs/en/images/delete-author-alert.png
index 41537d1756..ce1992478d 100644
Binary files a/docs/en/images/delete-author-alert.png and b/docs/en/images/delete-author-alert.png differ
diff --git a/docs/en/images/delete-book-alert.png b/docs/en/images/delete-book-alert.png
index 1676c37ce8..4ef12f3896 100644
Binary files a/docs/en/images/delete-book-alert.png and b/docs/en/images/delete-book-alert.png differ
diff --git a/docs/en/images/delete-book.png b/docs/en/images/delete-book.png
index f6f554d6af..cdfddce673 100644
Binary files a/docs/en/images/delete-book.png and b/docs/en/images/delete-book.png differ
diff --git a/docs/en/images/react-native-environment-local-ip.png b/docs/en/images/react-native-environment-local-ip.png
new file mode 100644
index 0000000000..9887fbcd16
Binary files /dev/null and b/docs/en/images/react-native-environment-local-ip.png differ
diff --git a/docs/en/images/react-native-introduction.gif b/docs/en/images/react-native-introduction.gif
index 15963556aa..4c89b56354 100644
Binary files a/docs/en/images/react-native-introduction.gif and b/docs/en/images/react-native-introduction.gif differ
diff --git a/docs/en/images/react-native-microservice-be-config.png b/docs/en/images/react-native-microservice-be-config.png
new file mode 100644
index 0000000000..2be862d04b
Binary files /dev/null and b/docs/en/images/react-native-microservice-be-config.png differ
diff --git a/docs/en/images/react-native-monolith-be-config.png b/docs/en/images/react-native-monolith-be-config.png
new file mode 100644
index 0000000000..08166473d3
Binary files /dev/null and b/docs/en/images/react-native-monolith-be-config.png differ
diff --git a/docs/en/images/react-native-monolith-environment-local-ip.png b/docs/en/images/react-native-monolith-environment-local-ip.png
new file mode 100644
index 0000000000..09e79419d6
Binary files /dev/null and b/docs/en/images/react-native-monolith-environment-local-ip.png differ
diff --git a/docs/en/images/react-native-option.png b/docs/en/images/react-native-option.png
new file mode 100644
index 0000000000..0121daa39f
Binary files /dev/null and b/docs/en/images/react-native-option.png differ
diff --git a/docs/en/images/react-native-store-folder.png b/docs/en/images/react-native-store-folder.png
index 2567d41477..0bc3fb8134 100644
Binary files a/docs/en/images/react-native-store-folder.png and b/docs/en/images/react-native-store-folder.png differ
diff --git a/docs/en/images/react-native-tiered-be-config.png b/docs/en/images/react-native-tiered-be-config.png
new file mode 100644
index 0000000000..f59fac5164
Binary files /dev/null and b/docs/en/images/react-native-tiered-be-config.png differ
diff --git a/docs/en/images/react-native-tiered-environment-local-ip.png b/docs/en/images/react-native-tiered-environment-local-ip.png
new file mode 100644
index 0000000000..604cb26115
Binary files /dev/null and b/docs/en/images/react-native-tiered-environment-local-ip.png differ
diff --git a/docs/en/images/rn-login-android-studio.png b/docs/en/images/rn-login-android-studio.png
index 4386e95268..e99b835ce0 100644
Binary files a/docs/en/images/rn-login-android-studio.png and b/docs/en/images/rn-login-android-studio.png differ
diff --git a/docs/en/images/rn-login-iphone.png b/docs/en/images/rn-login-iphone.png
index 69df4d9d55..576c260f5e 100644
Binary files a/docs/en/images/rn-login-iphone.png and b/docs/en/images/rn-login-iphone.png differ
diff --git a/docs/en/images/update-author.png b/docs/en/images/update-author.png
index c332994811..b3f7c92074 100644
Binary files a/docs/en/images/update-author.png and b/docs/en/images/update-author.png differ
diff --git a/docs/en/images/update-book.png b/docs/en/images/update-book.png
index c746550939..6b0dd851c9 100644
Binary files a/docs/en/images/update-book.png and b/docs/en/images/update-book.png differ
diff --git a/docs/en/images/update-delete-book-button-visibility.png b/docs/en/images/update-delete-book-button-visibility.png
index fc9f69e870..70e6506894 100644
Binary files a/docs/en/images/update-delete-book-button-visibility.png and b/docs/en/images/update-delete-book-button-visibility.png differ
diff --git a/docs/en/modules/setting-management.md b/docs/en/modules/setting-management.md
index 842233e8b4..7772e7f1f5 100644
--- a/docs/en/modules/setting-management.md
+++ b/docs/en/modules/setting-management.md
@@ -289,16 +289,18 @@ yarn ng generate component my-settings
Open the `app.component.ts` and modify the file as shown below:
```js
-import { Component } from '@angular/core';
-import { SettingTabsService } from '@abp/ng.setting-management/config'; // imported SettingTabsService
-import { MySettingsComponent } from './my-settings/my-settings.component'; // imported MySettingsComponent
+import { Component, inject } from '@angular/core';
+import { SettingTabsService } from '@abp/ng.setting-management/config';
+import { MySettingsComponent } from './my-settings/my-settings.component';
-@Component(/* component metadata */)
+@Component({
+ // component metadata
+})
export class AppComponent {
- constructor(private settingTabs: SettingTabsService) // injected MySettingsComponent
- {
- // added below
- settingTabs.add([
+ private readonly settingTabs = inject(SettingTabsService);
+
+ constructor() {
+ this.settingTabs.add([
{
name: 'MySettings',
order: 1,
diff --git a/docs/en/release-info/migration-guides/abp-10-0.md b/docs/en/release-info/migration-guides/abp-10-0.md
new file mode 100644
index 0000000000..e7afdce02e
--- /dev/null
+++ b/docs/en/release-info/migration-guides/abp-10-0.md
@@ -0,0 +1,86 @@
+# ABP Version 10.0 Migration Guide
+
+This document is a guide for upgrading ABP v9.x solutions to ABP v10.0. There are some changes in this version that may affect your applications, please read it carefully and apply the necessary changes to your application.
+
+## Open-Source (Framework)
+
+### Upgraded to .NET 10.0
+
+We've upgraded ABP to .NET 10.0, so you need to move your solutions to .NET 10.0 if you want to use ABP 10.0. You can check Microsoft’s [Migrate from ASP.NET Core 9.0 to 10.0](https://learn.microsoft.com/en-us/aspnet/core/migration/90-to-100) documentation, to see how to update an existing ASP.NET Core 9.0 project to ASP.NET Core 10.0.
+
+### Razor Runtime Compilation Obsolete
+
+We removed the Razor Runtime Compilation support.
+
+For more information, you can check the [Razor Runtime Compilation Obsolete](https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/10/razor-runtime-compilation-obsolete) page.
+
+### IActionContextAccessor Obsolete
+
+We removed the `IActionContextAccessor` from dependency injection.
+
+> We are not using `IActionContextAccessor` in ABP core framework and modules.
+
+See [IActionContextAccessor Obsolete](https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/10/iactioncontextaccessor-obsolete) for more information.
+
+### Add `BLOB Storing Memory Provider` module.
+
+In this version, we added the `BLOB Storing Memory Provider` module for unit testing purposes.
+
+See the [BLOB Storing Memory Provider](https://github.com/abpframework/abp/blob/dev/docs/en/framework/infrastructure/blob-storing/memory.md) document for more information.
+
+### Always use `MapStaticAssets`
+
+Provious, the `MapStaticAssets` has performance problems if there are too many static files. and we will use `StaticFileMiddleware` to serve the static files in development mode. NET 10.0 has fixed this problem. We will always use `MapStaticAssets` to serve the static files.
+
+See [Static file serving performance issues](https://github.com/dotnet/aspnetcore/issues/59673) for more information.
+
+### C# 14 overload resolution with span parameters
+
+NET Core will redirect `array.Contains` extension method to `MemoryExtensions.Contains`, This will cause `MongoDB.Driver` to be unable to translate `IQueryable`, If you are using `array.Contains` in your code, you should use following code to avoid this problem.
+
+> Only array has this problem, other types are not affected. eg List, HashSet, etc.
+
+> MongoDB.Driver will be fixed in the future.
+
+```csharp
+M((array, num) => array.Contains(num)); // fails, binds to MemoryExtensions.Contains
+M((array, num) => ((IEnumerable)array).Contains(num)); // ok, binds to Enumerable.Contains
+M((array, num) => array.AsEnumerable().Contains(num)); // ok, binds to Enumerable.Contains
+M((array, num) => Enumerable.Contains(array, num)); // ok, binds to Enumerable.Contains
+```
+
+See the [C# 14 overload resolution with span parameters](https://learn.microsoft.com/en-us/dotnet/core/compatibility/core-libraries/10.0/csharp-overload-resolution#recommended-action) for more information.
+
+### OpenIddict 7.X
+
+We upgraded OpenIddict to 7.X. See the [OpenIddict 6.x to 7.x Migration Guide](https://documentation.openiddict.com/guides/migration/60-to-70.html) for more information.
+
+OpenIddict 7.X changed the `OpenIddictToken` entity, you must create a new database migration if you use Entity Framework Core.
+
+### Migrating from AutoMapper to Mapperly
+
+The AutoMapper library is no longer free for commercial use. For more details, you can refer to this [announcement post](https://www.jimmybogard.com/automapper-and-mediatr-going-commercial/).
+
+In this version, all ABP modules use Mapperly instead of AutoMapper. ABP Framework provides both AutoMapper and Mapperly integrations. If your project currently uses AutoMapper and you don't have a commercial license, you can follow the [Migrating from AutoMapper to Mapperly](https://github.com/abpframework/abp/blob/dev/docs/en/release-info/migration-guides/AutoMapper-To-Mapperly.md) document to migrate to Mapperly.
+
+### Failure Retry Policy for InboxProcessor
+
+We added a failure retry policy to `AbpEventBusBoxesOptions` (see `InboxProcessorFailurePolicy` and `InboxProcessorRetryBackoffFactor`). Because this change adds and removes fields in the `IncomingEventRecord` entity, you must create a new database migration if you use Inbox/Outbox with Entity Framework Core.
+
+* `InboxProcessorFailurePolicy`: The policy to handle the failure of the inbox processor. Default value is `Retry`. Possible values are:
+ * `Retry`: The current exception and subsequent events will continue to be processed in order in the next cycle.
+ * `RetryLater`: Skip the event that caused the exception and continue with the following events. The failed event will be retried after a delay that doubles with each retry, starting from the configured `InboxProcessorRetryBackoffFactor` (e.g., 10, 20, 40, 80 seconds). The default maximum retry count is 10 (configurable). Discard the event if it still fails after reaching the maximum retry count.
+ * `Discard`: The event that caused the exception will be discarded and will not be retried.
+* `InboxProcessorRetryBackoffFactor`: The initial retry delay factor (double) used when `InboxProcessorFailurePolicy` is `RetryLater`. The retry delay is calculated as: `delay = InboxProcessorRetryBackoffFactor × 2^retryCount`. Default value is `10`.
+
+See the [Add failure retry policy to InboxProcessor](https://github.com/abpframework/abp/pull/23563) PR for more information.
+
+### Disable Cache Error Hiding in Development Environment
+
+Starting from **ABP 10.0**, the [`HideErrors`](../../framework/fundamentals/caching#Available-Options) option of `AbpDistributedCacheOptions` is **disabled by default in the development environment**.
+
+By default, ABP hides and logs cache server errors to keep the application running even when the cache is unavailable.
+However, in the **development environment**, errors are no longer hidden so that developers can immediately detect and fix **any cache server issues** (such as connection, configuration, or runtime errors).
+
+## PRO
+
diff --git a/docs/en/release-info/migration-guides/index.md b/docs/en/release-info/migration-guides/index.md
index e09c41c952..9d24cf7e5a 100644
--- a/docs/en/release-info/migration-guides/index.md
+++ b/docs/en/release-info/migration-guides/index.md
@@ -2,6 +2,7 @@
The following documents explain how to migrate your existing ABP applications. We write migration documents only if you need to take an action while upgrading your solution. Otherwise, you can easily upgrade your solution using the [abp update command](../upgrading.md).
+- [9.x to 10.0](abp-10-0.md)
- [9.2 to 9.3](abp-9-3.md)
- [9.x to 9.2](abp-9-2.md)
- [9.0 to 9.1](abp-9-1.md)
diff --git a/docs/en/solution-templates/layered-web-application/deployment/deployment-docker-compose.md b/docs/en/solution-templates/layered-web-application/deployment/deployment-docker-compose.md
index fe2d226d53..7b88e39bb2 100644
--- a/docs/en/solution-templates/layered-web-application/deployment/deployment-docker-compose.md
+++ b/docs/en/solution-templates/layered-web-application/deployment/deployment-docker-compose.md
@@ -204,8 +204,8 @@ DbMigrator is a console application that is used to migrate the database of your
`Dockerfile.local` is provided under this project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
ENTRYPOINT ["dotnet", "BookStore.DbMigrator.dll"]
```
@@ -273,8 +273,8 @@ The `appsettings.json` file does not contain `AuthServer:IsOnK8s` and `AuthServe
`Dockerfile.local` is provided under this project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
ENTRYPOINT ["dotnet", "Acme.BookStore.Web.dll"]
```
@@ -289,8 +289,8 @@ docker build -f Dockerfile.local -t acme/bookstore-web:latest . #Builds the imag
{{ end }} {{ if Tiered == "No" }}MVC/Razor Pages application is a server-side rendering application that contains both the OpenID-provider and the Http.Api endpoints within self; it will be a single application to deploy. `Dockerfile.local` is provided under this project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
@@ -397,8 +397,8 @@ The `appsettings.json` file does not contain `AuthServer:IsOnK8s` and `AuthServe
`Dockerfile.local` is provided under this project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
ENTRYPOINT ["dotnet", "Acme.BookStore.Blazor.dll"]
```
@@ -413,8 +413,8 @@ docker build -f Dockerfile.local -t acme/bookstore-blazor:latest . #Builds the i
{{ end }} {{ if Tiered == "No" }}Blazor Server application is a server-side rendering application that contains both the OpenID-provider and the Http.Api endpoints within self; it will be a single application to deploy. `Dockerfile.local` is provided under this project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
@@ -607,8 +607,8 @@ docker build -f Dockerfile.local -t acme/bookstore-angular:latest . #Builds the
The Blazor application uses [nginx:alpine-slim](https://hub.docker.com/layers/library/nginx/alpine-slim/images/sha256-0f859db466fda2c52f62b48d0602fb26867d98edbd62c26ae21414b3dea8d8f4?context=explore) base image to host the blazor application. You can modify the base image based on your preference in the `Dockerfile.local` which provided under the Blazor folder of your solution as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS build
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS build
+COPY bin/Release/net10.0/publish/ app/
FROM nginx:alpine-slim AS final
WORKDIR /usr/share/nginx/html
@@ -663,8 +663,8 @@ docker build -f Dockerfile.local -t acme/bookstore-blazor:latest . #Builds the i
This is the backend application that contains the openid-provider functionality as well. The `dockerfile.local` is located under the `Http.Api.Host` project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
@@ -720,8 +720,8 @@ docker build -f Dockerfile.local -t acme/bookstore-api:latest . #Builds the imag
This is the backend application that contains the OpenID-provider functionality as well. The `dockerfile.local` is located under the `Http.Api.Host` project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
@@ -779,8 +779,8 @@ docker build -f Dockerfile.local -t acme/bookstore-api:latest . #Builds the imag
This is the openid-provider application, the authentication server, which should be individually hosted compared to non-tiered application templates. The `dockerfile.local` is located under the `AuthServer` project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
@@ -832,8 +832,8 @@ docker build -f Dockerfile.local -t acme/bookstore-authserver:latest . #Builds t
This is the backend application that exposes the endpoints and swagger UI. It is not a multi-stage dockerfile; hence you need to have already built this application in **Release mode** to use this dockerfile. The `dockerfile.local` is located under the `Http.Api.Host` project as below;
```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:9.0
-COPY bin/Release/net9.0/publish/ app/
+FROM mcr.microsoft.com/dotnet/aspnet:10.0
+COPY bin/Release/net10.0/publish/ app/
WORKDIR /app
ENTRYPOINT ["dotnet", "Acme.BookStore.HttpApi.Host.dll"]
```
diff --git a/docs/en/solution-templates/layered-web-application/mobile-applications.md b/docs/en/solution-templates/layered-web-application/mobile-applications.md
index 09da244f27..4a6b6d057a 100644
--- a/docs/en/solution-templates/layered-web-application/mobile-applications.md
+++ b/docs/en/solution-templates/layered-web-application/mobile-applications.md
@@ -94,22 +94,22 @@ You can follow [Mobile Application Development Tutorial - MAUI](../../tutorials/
This is the mobile application that is built based on Facebook's [React Native framework](https://reactnative.dev/) and [Expo](https://expo.dev/). It will be in the solution only if you've selected React Native as your mobile application option.
#### Project Structure
-- **Environment.js**: file using for provide application level variables like `apiUrl`, `oAuthConfig` and etc.
+- **Environment.ts**: file using for provide application level variables like `apiUrl`, `oAuthConfig` and etc.
- **api**: The `api` folder contains HTTP request files that simplify API management in the React Native starter template
- - `API.js:` exports **axiosInstance**. It provides axios instance filled api url
+ - `API.ts:` exports **axiosInstance**. It provides axios instance filled api url
- **components**: In the `components` folder you can reach built in react native components that you can use in your app. These components **facilitates** your list, select and etc. operations
- **contexts**: `contexts` folder contains [react context](https://react.dev/reference/react/createContext). You can expots your contexts in this folder. `Localization context provided in here`
-- **navigators**: folder contains [react-native stacks](https://reactnavigation.org/docs/stack-navigator/). After create new *FeatureName*Navigator we need to provide in `DrawerNavigator.js` file as `Drawer.Screen`
+- **navigators**: folder contains [react-native stacks](https://reactnavigation.org/docs/stack-navigator/). After create new *FeatureName*Navigator we need to provide in `DrawerNavigator.tsx` file as `Drawer.Screen`
- **screens**: is the content of navigated page. We'll pass as component property to [Stack.Screen](https://reactnavigation.org/docs/native-stack-navigator/)
-- **store**: folder manages state-management operations. We will define `actions`, `reducers`, `sagas` and `selectors` here.
+- **store**: folder manages state-management operations. We will define `actions`, `listeners`, `reducers`, and `selectors` here.
-- **styles**: folder contains app styles. `system-style.js` comes built in template we can also add new styles.
+- **styles**: folder contains app styles. `system-style.ts` comes built in template we can also add new styles.
- **utils**: folder contains helper functions that we can use in application
diff --git a/docs/en/solution-templates/microservice/mobile-applications.md b/docs/en/solution-templates/microservice/mobile-applications.md
index e28afbc3c8..d3e8fe19d0 100644
--- a/docs/en/solution-templates/microservice/mobile-applications.md
+++ b/docs/en/solution-templates/microservice/mobile-applications.md
@@ -139,22 +139,28 @@ You can follow [Mobile Application Development Tutorial - MAUI](../../tutorials/
This is the mobile application that is built based on Facebook's [React Native framework](https://reactnative.dev/) and [Expo](https://expo.dev/). It will be in the solution only if you've selected React Native as your mobile application option.
#### Project Structure
-- **Environment.js**: file using for provide application level variables like `apiUrl`, `oAuthConfig` and etc.
+- **Environment.ts**: file using for providing application level variables like `apiUrl`, `oAuthConfig` and etc.
- **api**: The `api` folder contains HTTP request files that simplify API management in the React Native starter template
- - `API.js:` exports **axiosInstance**. It provides axios instance filled api url
+ - `API.ts:` exports **axiosInstance**. It provides axios instance filled api url.
-- **components**: In the `components` folder you can reach built in react native components that you can use in your app. These components **facilitates** your list, select and etc. operations
+- **components**: In the `components` folder, you can reach built in react native components that you can use in your app. These components **facilitates** your list, select and etc. operations.
- **contexts**: `contexts` folder contains [react context](https://react.dev/reference/react/createContext). You can expots your contexts in this folder. `Localization context provided in here`
-- **navigators**: folder contains [react-native stacks](https://reactnavigation.org/docs/stack-navigator/). After create new *FeatureName*Navigator we need to provide in `DrawerNavigator.js` file as `Drawer.Screen`
+- **hocs**: this folder is added to contain higher order components. The purpose is to wrap components with additional features or properties. It initially has a `PermissionHoc.tsx` that wraps a component to check the permission grant status.
-- **screens**: is the content of navigated page. We'll pass as component property to [Stack.Screen](https://reactnavigation.org/docs/native-stack-navigator/)
+- **hooks**: covers the react native hooks where you can get a reference from [the official documentation](https://react.dev/reference/react/hooks).
-- **store**: folder manages state-management operations. We will define `actions`, `reducers`, `sagas` and `selectors` here.
+- **interceptors**: initializes a file called `APIInterceptor.ts` that has a function to manage the http operations in a better way.
-- **styles**: folder contains app styles. `system-style.js` comes built in template we can also add new styles.
+- **navigators**: folder contains [react-native stacks](https://reactnavigation.org/docs/stack-navigator/). After creating a new *FeatureName*Navigator we need to provide in `DrawerNavigator.ts` file as `Drawer.Screen`
+
+- **screens**: folder has the content of navigated page. We will pass as component property to [Stack.Screen](https://reactnavigation.org/docs/native-stack-navigator/)
+
+- **store**: folder manages state-management operations. We will define `actions`, `listeners`, `reducers`, and `selectors` here.
+
+- **styles**: folder contains app styles. `system-style.ts` comes built in template we can also add new styles.
- **utils**: folder contains helper functions that we can use in application
@@ -162,6 +168,6 @@ This is the mobile application that is built based on Facebook's [React Native f
React Native applications can't be run with the solution runner. You need to run them with the React Native CLI. You can check the [React Native documentation](https://reactnative.dev/docs/environment-setup) to learn how to setup the environment for React Native development.
-Before running the React Native application, rest of the applications in the solution must be running. Such as AuthServer, MobileGateway and the microservices.
+Before running the React Native application, the rest of the applications in the solution must be running. Such as AuthServer, MobileGateway and the microservices.
Then you can run the React Native application by following this documentation: [Getting Started with the React Native](../../framework/ui/react-native/index.md).
\ No newline at end of file
diff --git a/docs/en/suite/solution-structure.md b/docs/en/suite/solution-structure.md
index 5abd50d751..ad6a2d69e6 100644
--- a/docs/en/suite/solution-structure.md
+++ b/docs/en/suite/solution-structure.md
@@ -318,8 +318,8 @@ React Native application folder structure is like below:

-* `App.js` is the bootstrap component of the application.
-* `Environment.js` file has the essential configuration of the application. `prod` and `dev` configurations are defined in this file.
+* `App.tsx` is the bootstrap component of the application.
+* `Environment.ts` file has the essential configuration of the application. `prod` and `dev` configurations are defined in this file.
* [Contexts](https://reactjs.org/docs/context.html) are created in the `src/contexts` folder.
* [Higher order components](https://reactjs.org/docs/higher-order-components.html) are created in the `src/hocs` folder.
* [Custom hooks](https://reactjs.org/docs/hooks-custom.html#extracting-a-custom-hook) are created in the `src/hooks`.
@@ -353,12 +353,11 @@ Actions, reducers, sagas, selectors are created in the `src/store` folder. Store
* [**Store**](https://redux.js.org/basics/store) is defined in the `src/store/index.js` file.
* [**Actions**](https://redux.js.org/basics/actions/) are payloads of information that send data from your application to your store.
* [**Reducers**](https://redux.js.org/basics/reducers) specify how the application's state changes in response to actions sent to the store.
-* [**Redux-Saga**](https://redux-saga.js.org/) is a library that aims to make application side effects (i.e. asynchronous things like data fetching and impure things like accessing the browser cache) easier to manage. Sagas are created in the `src/store/sagas` folder.
* [**Reselect**](https://github.com/reduxjs/reselect) library is used to create memoized selectors. Selectors are created in the `src/store/selectors` folder.
### APIs
-[Axios](https://github.com/axios/axios) is used as the HTTP client library. An Axios instance is exported from `src/api/API.js` file to make HTTP calls with the same config. `src/api` folder also has the API files that have been created for API calls.
+[Axios](https://github.com/axios/axios) is used as the HTTP client library. An Axios instance is exported from `src/api/API.ts` file to make HTTP calls with the same config. `src/api` folder also has the API files that have been created for API calls.
### Theming
@@ -381,7 +380,6 @@ See the [Testing Overview](https://reactjs.org/docs/testing.html) document.
* [Axios](https://github.com/axios/axios) is used as HTTP client library.
* [Redux](https://redux.js.org/) is used as state management library.
* [Redux Toolkit](https://redux-toolkit.js.org/) library is used as a toolset for efficient Redux development.
-* [Redux-Saga](https://redux-saga.js.org/) is used to manage asynchronous processes.
* [Redux Persist](https://github.com/rt2zz/redux-persist) is used for state persistance.
* [Reselect](https://github.com/reduxjs/reselect) is used to create memoized selectors.
* [i18n-js](https://github.com/fnando/i18n-js) is used as i18n library.
diff --git a/docs/en/tutorials/book-store/part-02.md b/docs/en/tutorials/book-store/part-02.md
index 43fcb55d47..e0a869c79f 100644
--- a/docs/en/tutorials/book-store/part-02.md
+++ b/docs/en/tutorials/book-store/part-02.md
@@ -446,7 +446,7 @@ Open the `/src/app/book/book.component.ts` file and replace the content as below
```js
import { ListService, PagedResultDto } from '@abp/ng.core';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { BookService, BookDto } from '@proxy/books';
@Component({
@@ -458,7 +458,8 @@ import { BookService, BookDto } from '@proxy/books';
export class BookComponent implements OnInit {
book = { items: [], totalCount: 0 } as PagedResultDto;
- constructor(public readonly list: ListService, private bookService: BookService) {}
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
ngOnInit() {
const bookStreamCreator = (query) => this.bookService.getList(query);
diff --git a/docs/en/tutorials/book-store/part-03.md b/docs/en/tutorials/book-store/part-03.md
index e67353b1fa..ae96f8a8e0 100644
--- a/docs/en/tutorials/book-store/part-03.md
+++ b/docs/en/tutorials/book-store/part-03.md
@@ -576,7 +576,7 @@ Open `/src/app/book/book.component.ts` and replace the content as below:
```js
import { ListService, PagedResultDto } from '@abp/ng.core';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { BookService, BookDto } from '@proxy/books';
@Component({
@@ -588,9 +588,10 @@ import { BookService, BookDto } from '@proxy/books';
export class BookComponent implements OnInit {
book = { items: [], totalCount: 0 } as PagedResultDto;
- isModalOpen = false; // add this line
+ isModalOpen = false;
- constructor(public readonly list: ListService, private bookService: BookService) {}
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
ngOnInit() {
const bookStreamCreator = (query) => this.bookService.getList(query);
@@ -600,7 +601,7 @@ export class BookComponent implements OnInit {
});
}
- // add new method
+ //add new method
createBook() {
this.isModalOpen = true;
}
@@ -668,7 +669,7 @@ Open `/src/app/book/book.component.ts` and replace the content as below:
```js
import { ListService, PagedResultDto } from '@abp/ng.core';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { BookService, BookDto, bookTypeOptions } from '@proxy/books'; // add bookTypeOptions
import { FormGroup, FormBuilder, Validators } from '@angular/forms'; // add this
@@ -688,11 +689,9 @@ export class BookComponent implements OnInit {
isModalOpen = false;
- constructor(
- public readonly list: ListService,
- private bookService: BookService,
- private fb: FormBuilder // inject FormBuilder
- ) {}
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
+ private readonly fb = inject(FormBuilder); // inject FormBuilder
ngOnInit() {
const bookStreamCreator = (query) => this.bookService.getList(query);
@@ -702,6 +701,7 @@ export class BookComponent implements OnInit {
});
}
+ // add new method
createBook() {
this.buildForm(); // add this line
this.isModalOpen = true;
@@ -735,7 +735,7 @@ export class BookComponent implements OnInit {
* Imported `FormGroup`, `FormBuilder` and `Validators` from `@angular/forms`.
* Added a `form: FormGroup` property.
* Added a `bookTypes` property as a list of `BookType` enum members. That will be used in form options.
-* Injected `FormBuilder` into the constructor. [FormBuilder](https://angular.io/api/forms/FormBuilder) provides convenient methods for generating form controls. It reduces the amount of boilerplate needed to build complex forms.
+* Injected with the `FormBuilder` inject function.. [FormBuilder](https://angular.io/api/forms/FormBuilder) provides convenient methods for generating form controls. It reduces the amount of boilerplate needed to build complex forms.
* Added a `buildForm` method to the end of the file and executed the `buildForm()` in the `createBook` method.
* Added a `save` method.
@@ -823,7 +823,7 @@ Open `/src/app/book/book.component.ts` and replace the content as below:
```js
import { ListService, PagedResultDto } from '@abp/ng.core';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { BookService, BookDto, bookTypeOptions } from '@proxy/books';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
@@ -848,11 +848,9 @@ export class BookComponent implements OnInit {
isModalOpen = false;
- constructor(
- public readonly list: ListService,
- private bookService: BookService,
- private fb: FormBuilder
- ) {}
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
+ private readonly fb = inject(FormBuilder);
ngOnInit() {
const bookStreamCreator = (query) => this.bookService.getList(query);
@@ -903,7 +901,7 @@ Open `/src/app/book/book.component.ts` and replace the content as shown below:
```js
import { ListService, PagedResultDto } from '@abp/ng.core';
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { BookService, BookDto, bookTypeOptions } from '@proxy/books';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { NgbDateNativeAdapter, NgbDateAdapter } from '@ng-bootstrap/ng-bootstrap';
@@ -925,11 +923,9 @@ export class BookComponent implements OnInit {
isModalOpen = false;
- constructor(
- public readonly list: ListService,
- private bookService: BookService,
- private fb: FormBuilder
- ) {}
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
+ private readonly fb = inject(FormBuilder);
ngOnInit() {
const bookStreamCreator = (query) => this.bookService.getList(query);
@@ -1039,34 +1035,40 @@ This template will show the **Edit** text for edit record operation, **New Book*
Open the `/src/app/book/book.component.ts` file and inject the `ConfirmationService`.
-Replace the constructor as below:
+Replace the injected services as below:
```js
// ...
// add new imports
import { ConfirmationService, Confirmation } from '@abp/ng.theme.shared';
+import { Component, OnInit, inject } from '@angular/core';
-//change the constructor
-constructor(
- public readonly list: ListService,
- private bookService: BookService,
- private fb: FormBuilder,
- private confirmation: ConfirmationService // inject the ConfirmationService
-) {}
-
-// Add a delete method
-delete(id: string) {
- this.confirmation.warn('::AreYouSureToDelete', '::AreYouSure').subscribe((status) => {
- if (status === Confirmation.Status.confirm) {
- this.bookService.delete(id).subscribe(() => this.list.get());
- }
- });
+// ...
+
+export class BookComponent implements OnInit {
+ // ...
+
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
+ private readonly fb = inject(FormBuilder);
+ private readonly confirmation = inject(ConfirmationService); // inject the ConfirmationService
+
+ // ...
+
+ // Add a delete method
+ delete(id: string) {
+ this.confirmation.warn('::AreYouSureToDelete', '::AreYouSure').subscribe((status) => {
+ if (status === Confirmation.Status.confirm) {
+ this.bookService.delete(id).subscribe(() => this.list.get());
+ }
+ });
+ }
}
```
* We imported `ConfirmationService`.
-* We injected `ConfirmationService` to the constructor.
+* We injected `ConfirmationService` using the `inject()` function.
* Added a `delete` method.
> Check out the [Confirmation Popup documentation](../../framework/ui/angular/confirmation-service.md) for more about this service.
diff --git a/docs/en/tutorials/book-store/part-09.md b/docs/en/tutorials/book-store/part-09.md
index 18ecd2726d..95de6ccd61 100644
--- a/docs/en/tutorials/book-store/part-09.md
+++ b/docs/en/tutorials/book-store/part-09.md
@@ -601,7 +601,7 @@ This command generates the service proxy for the author service and the related
Open the `/src/app/author/author.component.ts` file and replace the content as below:
```js
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, inject } from '@angular/core';
import { ListService, PagedResultDto } from '@abp/ng.core';
import { AuthorService, AuthorDto } from '@proxy/authors';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
@@ -623,12 +623,10 @@ export class AuthorComponent implements OnInit {
selectedAuthor = {} as AuthorDto;
- constructor(
- public readonly list: ListService,
- private authorService: AuthorService,
- private fb: FormBuilder,
- private confirmation: ConfirmationService
- ) {}
+ public readonly list = inject(ListService);
+ private readonly authorService = inject(AuthorService);
+ private readonly fb = inject(FormBuilder);
+ private readonly confirmation = inject(ConfirmationService);
ngOnInit(): void {
const authorStreamCreator = (query) => this.authorService.getList(query);
diff --git a/docs/en/tutorials/book-store/part-10.md b/docs/en/tutorials/book-store/part-10.md
index 02d1f81aba..ccb6755468 100644
--- a/docs/en/tutorials/book-store/part-10.md
+++ b/docs/en/tutorials/book-store/part-10.md
@@ -1009,12 +1009,12 @@ export class BookComponent implements OnInit {
isModalOpen = false;
- constructor(
- public readonly list: ListService,
- private bookService: BookService,
- private fb: FormBuilder,
- private confirmation: ConfirmationService
- ) {
+ public readonly list = inject(ListService);
+ private readonly bookService = inject(BookService);
+ private readonly fb = inject(FormBuilder);
+ private readonly confirmation = inject(ConfirmationService);
+
+ constructor() {
this.authors$ = bookService.getAuthorLookup().pipe(map((r) => r.items));
}
diff --git a/docs/en/tutorials/microservice/part-05.md b/docs/en/tutorials/microservice/part-05.md
index e72e94fc66..26bd3e3306 100644
--- a/docs/en/tutorials/microservice/part-05.md
+++ b/docs/en/tutorials/microservice/part-05.md
@@ -643,7 +643,7 @@ export const ORDER_SERVICE_ROUTES: Routes = [
* Create `order.component.ts` file under the `projects/ordering-service/src/lib/order` folder as following code:
```typescript
-import { Component } from '@angular/core';
+import { Component, inject } from '@angular/core';
import { CommonModule } from '@angular/common';
import { OrderDto, OrderService } from './proxy/ordering-service/services';
@@ -657,12 +657,13 @@ export class OrderComponent {
items: OrderDto[] = [];
- constructor(private readonly proxy: OrderService) {
+ private readonly proxy = inject(OrderService);
+
+ constructor() {
this.proxy.getList().subscribe((res) => {
this.items = res;
});
}
-
}
```
diff --git a/docs/en/tutorials/mobile/react-native/index.md b/docs/en/tutorials/mobile/react-native/index.md
index 2dfa3df957..76b4e59983 100644
--- a/docs/en/tutorials/mobile/react-native/index.md
+++ b/docs/en/tutorials/mobile/react-native/index.md
@@ -6,7 +6,7 @@ React Native mobile option is *available for* ***Team*** *or higher licenses*. T
> You must have an ABP Team or a higher license to be able to create a mobile application.
-- This tutorial assumes that you have completed the [Web Application Development tutorial](../../book-store/part-01.md) and built an ABP based application named `Acme.BookStore` with [React Native](../../../framework/ui/react-native) as the mobile option.. Therefore, if you haven't completed the [Web Application Development tutorial](../../book-store/part-01.md), you either need to complete it or download the source code from down below and follow this tutorial.
+- This tutorial assumes that you have completed the [Web Application Development tutorial](../../book-store/part-01.md) and built an ABP based application named `Acme.BookStore` with [React Native](../../../framework/ui/react-native) as the mobile option. Therefore, if you haven't completed the [Web Application Development tutorial](../../book-store/part-01.md), you either need to complete it or download the source code from down below and follow this tutorial.
- In this tutorial, we will only focus on the UI side of the `Acme.BookStore` application and will implement the CRUD operations.
- Before starting, please make sure that the [React Native Development Environment](../../../framework/ui/react-native/index.md) is ready on your machine.
@@ -20,33 +20,31 @@ You can use the following link to download the source code of the application de
## The Book List Page
-In react native there is no dynamic proxy generation, that's why we need to create the BookAPI proxy manually under the `./src/api` folder.
+There is no dynamic proxy generation for the react native application, that is why we need to create the BookAPI proxy manually under the `./src/api` folder.
-```js
-import api from "./API";
+```ts
+//./src/api/BookAPI.ts
+import api from './API';
-export const getList = () => api.get("/api/app/book").then(({ data }) => data);
+export const getList = () => api.get('/api/app/book').then(({ data }) => data);
-export const get = (id) =>
- api.get(`/api/app/book/${id}`).then(({ data }) => data);
+export const get = id => api.get(`/api/app/book/${id}`).then(({ data }) => data);
-export const create = (input) =>
- api.post("/api/app/book", input).then(({ data }) => data);
+export const create = input => api.post('/api/app/book', input).then(({ data }) => data);
-export const update = (input, id) =>
- api.put(`/api/app/book/${id}`, input).then(({ data }) => data);
+export const update = (input, id) => api.put(`/api/app/book/${id}`, input).then(({ data }) => data);
+
+export const remove = id => api.delete(`/api/app/book/${id}`).then(({ data }) => data);
-export const remove = (id) =>
- api.delete(`/api/app/book/${id}`).then(({ data }) => data);
```
### Add the `Book Store` menu item to the navigation
-For the create menu item, navigate to `./src/navigators/DrawerNavigator.js` file and add `BookStoreStack` to `Drawer.Navigator` component.
+For createing a menu item, navigate to `./src/navigators/DrawerNavigator.tsx` file and add `BookStoreStack` to `Drawer.Navigator` component.
-```js
+```tsx
//Other imports..
-import BookStoreStackNavigator from "./BookStoreNavigator";
+import BookStoreStackNavigator from './BookStoreNavigator';
const Drawer = createDrawerNavigator();
@@ -69,41 +67,61 @@ export default function DrawerNavigator() {
}
```
-Create the `BookStoreStackNavigator` in `./src/navigators/BookStoreNavigator.js`, this navigator will be used for the BookStore menu item.
+Create the `BookStoreStackNavigator` inside `./src/navigators/BookStoreNavigator.tsx`, this navigator will be used for the BookStore menu item.
-```js
-import React from "react";
-import { SafeAreaView } from "react-native-safe-area-context";
-import { createNativeStackNavigator } from "@react-navigation/native-stack";
-import i18n from "i18n-js";
-import HamburgerIcon from "../components/HamburgerIcon/HamburgerIcon";
-import BookStoreScreen from "../screens/Books/BookStoreScreen";
+```tsx
+import { createNativeStackNavigator } from '@react-navigation/native-stack';
+import { Button } from 'react-native-paper';
+import i18n from 'i18n-js';
+
+import { BookStoreScreen, CreateUpdateAuthorScreen, CreateUpdateBookScreen } from '../screens';
+
+import { HamburgerIcon } from '../components';
+import { useThemeColors } from '../hooks';
const Stack = createNativeStackNavigator();
export default function BookStoreStackNavigator() {
+ const { background, onBackground } = useThemeColors();
+
return (
-
-
- ({
- title: i18n.t("BookStore::Menu:BookStore"),
- headerLeft: () => ,
- })}
- />
-
-
+
+ ({
+ title: i18n.t('BookStore::Menu:BookStore'),
+ headerLeft: () => ,
+ headerStyle: { backgroundColor: background },
+ headerTintColor: onBackground,
+ headerShadowVisible: false,
+ })}
+ />
+ ({
+ title: i18n.t(route.params?.bookId ? 'BookStore::Edit' : 'BookStore::NewBook'),
+ headerRight: () => (
+
+ ),
+ headerStyle: { backgroundColor: background },
+ headerTintColor: onBackground,
+ headerShadowVisible: false,
+ })}
+ />
+
);
}
```
- BookStoreScreen will be used to store the `books` and `authors` page
-Add the `BookStoreStack` to the screens object in the `./src/components/DrawerContent/DrawerContent.js` file. The DrawerContent component will be used to render the menu items.
+Add the `BookStoreStack` to the screens object in the `./src/components/DrawerContent/DrawerContent.tsx` file. The DrawerContent component will be used to render the menu items.
-```js
+```tsx
// Imports..
const screens = {
HomeStack: { label: "::Menu:Home", iconName: "home" },
@@ -141,15 +159,18 @@ const screens = {
### Create Book List page
-Before creating the book list page, we need to create the `BookStoreScreen.js` file under the `./src/screens/BookStore` folder. This file will be used to store the `books` and `authors` page.
+Before creating the book list page, we need to create the `BookStoreScreen.tsx` file under the `./src/screens/BookStore` folder. This file will be used to store the `books` and `authors` page.
-```js
-import React from "react";
-import i18n from "i18n-js";
-import { BottomNavigation } from "react-native-paper";
-import BooksScreen from "./Books/BooksScreen";
+```tsx
+import { useState, useEffect } from 'react';
+import { useSelector } from 'react-redux';
+import i18n from 'i18n-js';
+import { BottomNavigation } from 'react-native-paper';
+
+import { BooksScreen } from '../../screens';
+import { useThemeColors } from '../../hooks';
-const BooksRoute = () => ;
+const BooksRoute = nav => ;
function BookStoreScreen({ navigation }) {
const [index, setIndex] = React.useState(0);
@@ -177,24 +198,24 @@ function BookStoreScreen({ navigation }) {
export default BookStoreScreen;
```
-Create the `BooksScreen.js` file under the `./src/screens/BookStore/Books` folder.
+Create the `BooksScreen.tsx` file under the `./src/screens/BookStore/Books` folder.
-```js
-import React from "react";
+```tsx
import { useSelector } from "react-redux";
import { View } from "react-native";
-import { useTheme, List } from "react-native-paper";
+import { List } from "react-native-paper";
import { getBooks } from "../../api/BookAPI";
import i18n from "i18n-js";
import DataList from "../../components/DataList/DataList";
import { createAppConfigSelector } from "../../store/selectors/AppSelectors";
+import { useThemeColors } from '../../../hooks';
function BooksScreen({ navigation }) {
- const theme = useTheme();
+ const { background, primary } = useThemeColors();
const currentUser = useSelector(createAppConfigSelector())?.currentUser;
return (
-
+
{currentUser?.isAuthenticated && (
-
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs
index ba1bfd0437..c3fc470ed8 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcModule.cs
@@ -139,20 +139,12 @@ public class AbpAspNetCoreMvcModule : AbpModule
})
.AddViewLocalization(); //TODO: How to configure from the application? Also, consider to move to a UI module since APIs does not care about it.
- if (context.Services.GetHostingEnvironment().IsDevelopment() &&
- context.Services.ExecutePreConfiguredActions().EnableRazorRuntimeCompilationOnDevelopment)
- {
- mvcCoreBuilder.AddAbpRazorRuntimeCompilation();
- }
-
mvcCoreBuilder.AddAbpJson();
context.Services.ExecutePreConfiguredActions(mvcBuilder);
//TODO: AddViewLocalization by default..?
- context.Services.TryAddSingleton();
-
//Use DI to create controllers
mvcBuilder.AddControllersAsServices();
diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcOptions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcOptions.cs
index 548981053d..6df0ace0fa 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcOptions.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcOptions.cs
@@ -20,8 +20,6 @@ public class AbpAspNetCoreMvcOptions
public bool AutoModelValidation { get; set; }
- public bool EnableRazorRuntimeCompilationOnDevelopment { get; set; }
-
public bool ChangeControllerModelApiExplorerGroupName { get; set; }
public AbpAspNetCoreMvcOptions()
@@ -30,7 +28,6 @@ public class AbpAspNetCoreMvcOptions
IgnoredControllersOnModelExclusion = new HashSet();
ControllersToRemove = new HashSet();
AutoModelValidation = true;
- EnableRazorRuntimeCompilationOnDevelopment = true;
ChangeControllerModelApiExplorerGroupName = true;
}
}
diff --git a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj
index 94606f1834..cc5761c6e0 100644
--- a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj
+++ b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.AspNetCore.Serilog
diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj
index 171bf052d0..5a73959a40 100644
--- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj
+++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.AspNetCore.SignalR
diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj
index 6c12c63e61..a9ba46892e 100644
--- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj
+++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.AspNetCore.TestBase
diff --git a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs
index b9142b5aed..3a283cbe36 100644
--- a/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs
+++ b/framework/src/Volo.Abp.AspNetCore/Microsoft/AspNetCore/Builder/AbpApplicationBuilderExtensions.cs
@@ -181,43 +181,6 @@ public static class AbpApplicationBuilderExtensions
throw new AbpException("The app(IApplicationBuilder) is not an IEndpointRouteBuilder.");
}
- var environment = endpoints.ServiceProvider.GetRequiredService();
- if (environment.IsDevelopment())
- {
- // MapStaticAssets in development mode will have a performance issue if there are many static files.
- // https://github.com/dotnet/aspnetcore/issues/59673
- app.UseStaticFiles();
-
- if (!staticAssetsManifestPath.IsNullOrWhiteSpace())
- {
- app.ApplicationServices.GetRequiredService>().LogWarning(
- $"The staticAssetsManifestPath({staticAssetsManifestPath}) parameter your provided in MapAbpStaticAssets method is ignored in development mode.");
- }
-
- var blazorClientProjectPaths = new[]
- {
- Path.Combine(AppContext.BaseDirectory, $"{environment.ApplicationName}.Client.staticwebassets.endpoints.json"),
- Path.Combine(AppContext.BaseDirectory, $"{environment.ApplicationName.RemovePostFix(".Host")}.Blazor.staticwebassets.endpoints.json"),
- };
-
- var blazorClientStaticAssetsManifest = blazorClientProjectPaths.FirstOrDefault(File.Exists);
- if (blazorClientStaticAssetsManifest != null)
- {
- // We have a blazor client project and we need to map the static assets from the client project.
- var blazorHostStaticAssetsManifest = Path.Combine(AppContext.BaseDirectory, $"{environment.ApplicationName}.staticwebassets.endpoints.json");
- File.Copy(blazorClientStaticAssetsManifest, blazorHostStaticAssetsManifest, true);
- return endpoints.MapStaticAssets(blazorHostStaticAssetsManifest);
- }
-
- // Volo.Abp.AspNetCore.staticwebassets.endpoints.json is an empty file. Just compatible with the return type of MapAbpStaticAssets.
- var tempStaticAssetsManifestPath = Path.Combine(AppContext.BaseDirectory, "Volo.Abp.AspNetCore.staticwebassets.endpoints.json");
- if (!File.Exists(tempStaticAssetsManifestPath))
- {
- File.WriteAllText(tempStaticAssetsManifestPath, "{\"Version\":1,\"ManifestType\":\"Build\",\"Endpoints\":[]}");
- }
- return endpoints.MapStaticAssets(tempStaticAssetsManifestPath);
- }
-
var options = app.ApplicationServices.GetRequiredService>().Value;
foreach (var folder in options.AllowedExtraWebContentFolders)
{
diff --git a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj
index 3300bce024..9affb2a326 100644
--- a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj
+++ b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.AspNetCore
diff --git a/framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.csproj b/framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.csproj
index f15bac5a92..20c235230f 100644
--- a/framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.csproj
+++ b/framework/src/Volo.Abp.Auditing.Contracts/Volo.Abp.Auditing.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Auditing.Contracts
diff --git a/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj b/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj
index 5bfbf26366..42af9b5b97 100644
--- a/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj
+++ b/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Auditing
diff --git a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs
index 0f8894ed10..52c6302da2 100644
--- a/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs
+++ b/framework/src/Volo.Abp.Auditing/Volo/Abp/Auditing/AuditingInterceptor.cs
@@ -85,7 +85,7 @@ public class AuditingInterceptor : AbpInterceptor, ITransientDependency
{
auditLogAction = auditingHelper.CreateAuditLogAction(
auditLog,
- invocation.TargetObject.GetType(),
+ invocation.TargetObject?.GetType(),
invocation.Method,
invocation.Arguments
);
diff --git a/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj b/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj
index 3a201ee7ae..173bf23a70 100644
--- a/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Authorization.Abstractions/Volo.Abp.Authorization.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Authorization.Abstractions
diff --git a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj
index dfaea2aadb..a068287892 100644
--- a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj
+++ b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Authorization
diff --git a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
index e56ddd83a9..70d1672dfc 100644
--- a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
+++ b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
@@ -4,7 +4,7 @@
- net8.0;net9.0
+ net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.AutoMapper
diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
index fef591ce70..ce4dc1e189 100644
--- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
+++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
@@ -2,6 +2,7 @@
using AutoMapper;
using AutoMapper.Internal;
using Microsoft.Extensions.DependencyInjection;
+using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Volo.Abp.Auditing;
using Volo.Abp.Modularity;
@@ -39,7 +40,8 @@ public class AbpAutoMapperModule : AbpModule
{
configurator(autoMapperConfigurationContext);
}
- var mapperConfiguration = new MapperConfiguration(mapperConfigurationExpression);
+
+ var mapperConfiguration = new MapperConfiguration(mapperConfigurationExpression, sp.GetRequiredService());
foreach (var profileType in options.ValidatingProfiles)
{
diff --git a/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj b/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj
index f3b7261a4c..9f1ddd5467 100644
--- a/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj
+++ b/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj
index 417a7b4f2f..cb34bc6642 100644
--- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj
+++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Autofac
diff --git a/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj b/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj
index b0b668a144..4a360e8389 100644
--- a/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj
+++ b/framework/src/Volo.Abp.AzureServiceBus/Volo.Abp.AzureServiceBus.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.AzureServiceBus
diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj
index f013740401..1627c0e16d 100644
--- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj
+++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundJobs.Abstractions
diff --git a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj
index 2e88148bb5..6ad383d22b 100644
--- a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj
+++ b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundJobs.HangFire
diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj
index 52cbe0b9be..b8bbf250b3 100644
--- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj
+++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundJobs.Quartz
diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj
index 947cadec96..e59bb911ee 100644
--- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj
+++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundJobs.RabbitMQ
diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj b/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj
index acc0de1097..10f8395465 100644
--- a/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj
+++ b/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundJobs
diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj
index a177b5c2de..c7f11775f0 100644
--- a/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj
+++ b/framework/src/Volo.Abp.BackgroundWorkers.Hangfire/Volo.Abp.BackgroundWorkers.Hangfire.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundWorkers.Hangfire
diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj
index 4a6df3d769..910b2097ef 100644
--- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj
+++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj
@@ -5,7 +5,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundWorkers.Quartz
diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj b/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj
index 62924f5aa7..a6d2388ce7 100644
--- a/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj
+++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BackgroundWorkers
diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj
index ab6d1fb80f..761c6f87cd 100644
--- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj
+++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj
index 4c5fbf1fcc..5bf60a3f21 100644
--- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BlobStoring.Aliyun
diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj
index 4eebeba0ff..b74a1d153f 100644
--- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
false
diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj
index 509d3d26bf..ae20a2ebbc 100644
--- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BlobStoring.Azure
diff --git a/framework/src/Volo.Abp.BlobStoring.Bunny/Volo.Abp.BlobStoring.Bunny.csproj b/framework/src/Volo.Abp.BlobStoring.Bunny/Volo.Abp.BlobStoring.Bunny.csproj
index 2cd9c74ac6..f6b3713761 100644
--- a/framework/src/Volo.Abp.BlobStoring.Bunny/Volo.Abp.BlobStoring.Bunny.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Bunny/Volo.Abp.BlobStoring.Bunny.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
false
diff --git a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj
index 0b1618bd44..38be0da5ae 100644
--- a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BlobStoring.FileSystem
diff --git a/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj b/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj
index a452f2a129..706182ad37 100644
--- a/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Google/Volo.Abp.BlobStoring.Google.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BlobStoring.Google
diff --git a/framework/src/Volo.Abp.BlobStoring.Memory/FodyWeavers.xml b/framework/src/Volo.Abp.BlobStoring.Memory/FodyWeavers.xml
new file mode 100644
index 0000000000..1715698ccd
--- /dev/null
+++ b/framework/src/Volo.Abp.BlobStoring.Memory/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.BlobStoring.Memory/FodyWeavers.xsd b/framework/src/Volo.Abp.BlobStoring.Memory/FodyWeavers.xsd
new file mode 100644
index 0000000000..ffa6fc4b78
--- /dev/null
+++ b/framework/src/Volo.Abp.BlobStoring.Memory/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.BlobStoring.Memory/Volo.Abp.BlobStoring.Memory.csproj b/framework/src/Volo.Abp.BlobStoring.Memory/Volo.Abp.BlobStoring.Memory.csproj
new file mode 100644
index 0000000000..02abcd3836
--- /dev/null
+++ b/framework/src/Volo.Abp.BlobStoring.Memory/Volo.Abp.BlobStoring.Memory.csproj
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
+ enable
+ Nullable
+ Volo.Abp.BlobStoring.Memory
+ Volo.Abp.BlobStoring.Memory
+ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
+ false
+ false
+
+
+
+
+
+
+
+
diff --git a/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/AbpBlobStoringMemoryModule.cs b/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/AbpBlobStoringMemoryModule.cs
new file mode 100644
index 0000000000..051ecda0e3
--- /dev/null
+++ b/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/AbpBlobStoringMemoryModule.cs
@@ -0,0 +1,9 @@
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.BlobStoring.Memory;
+
+[DependsOn(typeof(AbpBlobStoringModule))]
+public class AbpBlobStoringMemoryModule : AbpModule
+{
+
+}
diff --git a/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/MemoryBlobContainerConfigurationExtensions.cs b/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/MemoryBlobContainerConfigurationExtensions.cs
new file mode 100644
index 0000000000..b366039d69
--- /dev/null
+++ b/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/MemoryBlobContainerConfigurationExtensions.cs
@@ -0,0 +1,10 @@
+namespace Volo.Abp.BlobStoring.Memory;
+
+public static class MemoryBlobContainerConfigurationExtensions
+{
+ public static BlobContainerConfiguration UseMemory(this BlobContainerConfiguration containerConfiguration)
+ {
+ containerConfiguration.ProviderType = typeof(MemoryBlobProvider);
+ return containerConfiguration;
+ }
+}
diff --git a/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/MemoryBlobProvider.cs b/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/MemoryBlobProvider.cs
new file mode 100644
index 0000000000..0c499b89cc
--- /dev/null
+++ b/framework/src/Volo.Abp.BlobStoring.Memory/Volo/Abp/BlobStoring/Memory/MemoryBlobProvider.cs
@@ -0,0 +1,65 @@
+using System.Collections.Concurrent;
+using System.IO;
+using System.Threading.Tasks;
+using Volo.Abp.DependencyInjection;
+using Volo.Abp.MultiTenancy;
+
+namespace Volo.Abp.BlobStoring.Memory;
+
+public class MemoryBlobProvider : BlobProviderBase, ITransientDependency
+{
+ protected ConcurrentDictionary MemoryStore { get; }
+
+ protected ICurrentTenant CurrentTenant { get; }
+
+ public MemoryBlobProvider(ICurrentTenant currentTenant)
+ {
+ MemoryStore = new ConcurrentDictionary();
+
+ CurrentTenant = currentTenant;
+ }
+
+ public override async Task SaveAsync(BlobProviderSaveArgs args)
+ {
+ var cacheKey = GetCacheKey(args);
+
+ using var buffer = new MemoryStream();
+ await args.BlobStream.CopyToAsync(buffer);
+ var bytes = buffer.ToArray();
+
+ if (!args.OverrideExisting)
+ {
+ if (!MemoryStore.TryAdd(cacheKey, bytes))
+ {
+ throw new BlobAlreadyExistsException(
+ $"Saving BLOB '{args.BlobName}' does already exists in the container '{args.ContainerName}'! Set {nameof(args.OverrideExisting)} if it should be overwritten.");
+ }
+ }
+ else
+ {
+ MemoryStore.AddOrUpdate(cacheKey, bytes, (_, __) => bytes);
+ }
+ }
+
+ public override Task DeleteAsync(BlobProviderDeleteArgs args)
+ {
+ return Task.FromResult(MemoryStore.TryRemove(GetCacheKey(args), out _));
+ }
+
+ public override Task ExistsAsync(BlobProviderExistsArgs args)
+ {
+ return Task.FromResult(MemoryStore.ContainsKey(GetCacheKey(args)));
+ }
+
+ public override Task GetOrNullAsync(BlobProviderGetArgs args)
+ {
+ return MemoryStore.TryGetValue(GetCacheKey(args), out var bytes)
+ ? Task.FromResult(new MemoryStream(bytes, writable: false))
+ : Task.FromResult(null);
+ }
+
+ protected virtual string GetCacheKey(BlobProviderArgs args)
+ {
+ return $"{CurrentTenant.Id}_{args.BlobName}_{args.ContainerName}";
+ }
+}
diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj
index 8a2dff731a..0b5f33e146 100644
--- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj
+++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.BlobStoring.Minio
diff --git a/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj b/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj
index c9774f4f81..4c710d6b8b 100644
--- a/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj
+++ b/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.BlobStoring
diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj
index 3655edbc7d..12581fb7b0 100644
--- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj
+++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Caching.StackExchangeRedis
diff --git a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj
index cf14047faf..ad2e8df65f 100644
--- a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj
+++ b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Volo.Abp.Caching
Volo.Abp.Caching
diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs
index 632bfa416e..15a425105b 100644
--- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs
+++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/AbpCachingModule.cs
@@ -30,9 +30,17 @@ public class AbpCachingModule : AbpModule
context.Services.AddSingleton(typeof(IHybridCache<>), typeof(AbpHybridCache<>));
context.Services.AddSingleton(typeof(IHybridCache<,>), typeof(AbpHybridCache<,>));
- context.Services.Configure(cacheOptions =>
+ Configure(cacheOptions =>
{
cacheOptions.GlobalCacheEntryOptions.SlidingExpiration = TimeSpan.FromMinutes(20);
});
+
+ if (context.Services.GetAbpHostEnvironment().IsDevelopment())
+ {
+ Configure(options =>
+ {
+ options.HideErrors = false;
+ });
+ }
}
}
diff --git a/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj b/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj
index 9a420f1052..15dc1bc33b 100644
--- a/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj
+++ b/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Castle.Core
diff --git a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterBase.cs b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterBase.cs
index 138a35c8b0..8417ffe223 100644
--- a/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterBase.cs
+++ b/framework/src/Volo.Abp.Castle.Core/Volo/Abp/Castle/DynamicProxy/CastleAbpMethodInvocationAdapterBase.cs
@@ -9,35 +9,35 @@ namespace Volo.Abp.Castle.DynamicProxy;
public abstract class CastleAbpMethodInvocationAdapterBase : IAbpMethodInvocation
{
- public object[] Arguments => Invocation.Arguments;
+ public object?[] Arguments => Invocation.Arguments;
- public IReadOnlyDictionary ArgumentsDictionary => _lazyArgumentsDictionary.Value;
- private readonly Lazy> _lazyArgumentsDictionary;
+ public IReadOnlyDictionary ArgumentsDictionary => _lazyArgumentsDictionary.Value;
+ private readonly Lazy> _lazyArgumentsDictionary;
- public Type[] GenericArguments => Invocation.GenericArguments;
+ public Type[]? GenericArguments => Invocation.GenericArguments;
- public object TargetObject => Invocation.InvocationTarget ?? Invocation.MethodInvocationTarget;
+ public object? TargetObject => Invocation.InvocationTarget ?? Invocation.MethodInvocationTarget;
public MethodInfo Method => Invocation.MethodInvocationTarget ?? Invocation.Method;
- public object ReturnValue { get; set; } = default!;
+ public object ReturnValue { get; set; } = null!;
protected IInvocation Invocation { get; }
protected CastleAbpMethodInvocationAdapterBase(IInvocation invocation)
{
Invocation = invocation;
- _lazyArgumentsDictionary = new Lazy>(GetArgumentsDictionary);
+ _lazyArgumentsDictionary = new Lazy>(GetArgumentsDictionary);
}
public abstract Task ProceedAsync();
- private IReadOnlyDictionary GetArgumentsDictionary()
+ private IReadOnlyDictionary GetArgumentsDictionary()
{
- var dict = new Dictionary();
+ var dict = new Dictionary();
var methodParameters = Method.GetParameters();
- for (int i = 0; i < methodParameters.Length; i++)
+ for (var i = 0; i < methodParameters.Length; i++)
{
dict[methodParameters[i].Name!] = Invocation.Arguments[i];
}
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj
index 547f9f0aff..078d1aa6cc 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj
+++ b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
false
false
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LogoutCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LogoutCommand.cs
index 2dcb08ea9b..58a687eea3 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LogoutCommand.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/LogoutCommand.cs
@@ -21,9 +21,11 @@ public class LogoutCommand : IConsoleCommand, ITransientDependency
Logger = NullLogger.Instance;
}
- public Task ExecuteAsync(CommandLineArgs commandLineArgs)
+ public async Task ExecuteAsync(CommandLineArgs commandLineArgs)
{
- return AuthService.LogoutAsync();
+ await AuthService.LogoutAsync();
+
+ Logger.LogInformation("You are logged out.");
}
public string GetUsageInfo()
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SuiteAppSettingsService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SuiteAppSettingsService.cs
index 37e19b70f9..665fcbb6cd 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SuiteAppSettingsService.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/Services/SuiteAppSettingsService.cs
@@ -92,7 +92,7 @@ public class SuiteAppSettingsService : ITransientDependency
"volo.abp.suite",
version,
"tools",
- "net9.0",
+ "net10.0",
"any",
"appsettings.json"
);
diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
index 5f546717cb..0141195cb5 100644
--- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
+++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/LIbs/InstallLibsService.cs
@@ -188,7 +188,9 @@ public class InstallLibsService : IInstallLibsService, ITransientDependency
}
}
- foreach (var directoryInfo in Directory.GetDirectories(Path.Combine(directory, resourceMapping.Clean.First()), "*", SearchOption.AllDirectories).Reverse())
+ var directoryInfos = Directory.GetDirectories(Path.Combine(directory, resourceMapping.Clean.First()), "*", SearchOption.AllDirectories);
+ directoryInfos.Reverse();
+ foreach (var directoryInfo in directoryInfos)
{
if (!Directory.EnumerateFileSystemEntries(directoryInfo).Any())
{
diff --git a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj
index e714fcd0b3..9254b21165 100644
--- a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj
+++ b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj
@@ -7,7 +7,7 @@
Exe
enable
Nullable
- net9.0
+ net10.0
true
abp
diff --git a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceProviderKeyedServiceExtensions.cs b/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceProviderKeyedServiceExtensions.cs
deleted file mode 100644
index f31923f68c..0000000000
--- a/framework/src/Volo.Abp.Core/Microsoft/Extensions/DependencyInjection/ServiceProviderKeyedServiceExtensions.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-using System;
-using Volo.Abp;
-
-namespace Microsoft.Extensions.DependencyInjection;
-
-public static class ServiceProviderKeyedServiceExtensions
-{
- public static object? GetKeyedService(this IServiceProvider provider, Type serviceType, object? serviceKey)
- {
- Check.NotNull(provider, nameof(provider));
-
- if (provider is IKeyedServiceProvider keyedServiceProvider)
- {
- return keyedServiceProvider.GetKeyedService(serviceType, serviceKey);
- }
-
- throw new InvalidOperationException("This service provider doesn't support keyed services.");
- }
-}
diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj
index 5afcca9fbe..def4aa417d 100644
--- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj
+++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Core
@@ -32,7 +32,7 @@
-
+
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Aspects/AbpCrossCuttingConcerns.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Aspects/AbpCrossCuttingConcerns.cs
index 9007b334b4..69c052bc64 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/Aspects/AbpCrossCuttingConcerns.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/Aspects/AbpCrossCuttingConcerns.cs
@@ -42,7 +42,7 @@ public static class AbpCrossCuttingConcerns
}
}
- public static bool IsApplied([NotNull] object obj, [NotNull] string concern)
+ public static bool IsApplied(object? obj, [NotNull] string concern)
{
if (obj == null)
{
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Collections/NamedActionList.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Collections/NamedActionList.cs
new file mode 100644
index 0000000000..f5ebbc2bc1
--- /dev/null
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/Collections/NamedActionList.cs
@@ -0,0 +1,14 @@
+using System;
+
+namespace Volo.Abp.AI;
+
+public class NamedActionList : NamedObjectList>
+{
+ public void Add(Action action)
+ {
+ this.Add(Guid.NewGuid().ToString("N"), action);
+ }
+
+ public void Add(string name, Action action)
+ => this.Add(new NamedAction(name, action));
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Collections/NamedObjectList.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Collections/NamedObjectList.cs
new file mode 100644
index 0000000000..df91c0afc3
--- /dev/null
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/Collections/NamedObjectList.cs
@@ -0,0 +1,9 @@
+using System.Collections.Generic;
+
+namespace Volo.Abp.AI;
+
+public class NamedObjectList : List
+ where T : NamedObject
+{
+
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/IAbpMethodInvocation.cs b/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/IAbpMethodInvocation.cs
index 8c03c4e4ef..8c655868cb 100644
--- a/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/IAbpMethodInvocation.cs
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/DynamicProxy/IAbpMethodInvocation.cs
@@ -7,13 +7,13 @@ namespace Volo.Abp.DynamicProxy;
public interface IAbpMethodInvocation
{
- object[] Arguments { get; }
+ object?[] Arguments { get; }
- IReadOnlyDictionary ArgumentsDictionary { get; }
+ IReadOnlyDictionary ArgumentsDictionary { get; }
- Type[] GenericArguments { get; }
+ Type[]? GenericArguments { get; }
- object TargetObject { get; }
+ object? TargetObject { get; }
MethodInfo Method { get; }
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/NamedAction.cs b/framework/src/Volo.Abp.Core/Volo/Abp/NamedAction.cs
new file mode 100644
index 0000000000..f7bf5a7177
--- /dev/null
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/NamedAction.cs
@@ -0,0 +1,14 @@
+using System;
+
+namespace Volo.Abp;
+
+public class NamedAction : NamedObject
+{
+ public Action Action { get; set; }
+
+ public NamedAction(string name, Action action)
+ : base(name)
+ {
+ Action = Check.NotNull(action, nameof(action));
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/NamedObject.cs b/framework/src/Volo.Abp.Core/Volo/Abp/NamedObject.cs
new file mode 100644
index 0000000000..579a97cce1
--- /dev/null
+++ b/framework/src/Volo.Abp.Core/Volo/Abp/NamedObject.cs
@@ -0,0 +1,11 @@
+namespace Volo.Abp;
+
+public class NamedObject
+{
+ public string Name { get; }
+
+ public NamedObject(string name)
+ {
+ Name = Check.NotNullOrWhiteSpace(name, nameof(name));
+ }
+}
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj
index 0fa2dbc96b..181ce099a7 100644
--- a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj
+++ b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Dapper
diff --git a/framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.csproj b/framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.csproj
index 699b187bfb..af162ef2c5 100644
--- a/framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.csproj
+++ b/framework/src/Volo.Abp.Dapr/Volo.Abp.Dapr.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj b/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj
index bcfc0bf60c..34ce9d6cff 100644
--- a/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj
+++ b/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Data
diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj
index e037540aa3..cf9e65fd73 100644
--- a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj
+++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Ddd.Application.Contracts
diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj b/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj
index becc5415f4..e164352063 100644
--- a/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj
+++ b/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Ddd.Application
diff --git a/framework/src/Volo.Abp.Ddd.Domain.Shared/Volo.Abp.Ddd.Domain.Shared.csproj b/framework/src/Volo.Abp.Ddd.Domain.Shared/Volo.Abp.Ddd.Domain.Shared.csproj
index ebd9e00588..844d50f772 100644
--- a/framework/src/Volo.Abp.Ddd.Domain.Shared/Volo.Abp.Ddd.Domain.Shared.csproj
+++ b/framework/src/Volo.Abp.Ddd.Domain.Shared/Volo.Abp.Ddd.Domain.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Ddd.Domain.Shared
diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj b/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj
index 9a70cb6216..6506d8fe7b 100644
--- a/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj
+++ b/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Ddd.Domain
diff --git a/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.csproj b/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.csproj
index 5dba54cc28..83f8f0076b 100644
--- a/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.csproj
+++ b/framework/src/Volo.Abp.DistributedLocking.Abstractions/Volo.Abp.DistributedLocking.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.DistributedLocking.Abstractions
diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.csproj b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.csproj
index 30225bab9e..3ab038c260 100644
--- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.csproj
+++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo.Abp.DistributedLocking.Dapr.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs
index 335fd3d930..28be1e4edf 100644
--- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs
+++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLock.cs
@@ -4,6 +4,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Options;
using Volo.Abp.Dapr;
using Volo.Abp.DependencyInjection;
+#pragma warning disable DAPR_DISTRIBUTEDLOCK
namespace Volo.Abp.DistributedLocking.Dapr;
diff --git a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLockHandle.cs b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLockHandle.cs
index ccb82fc995..131303a426 100644
--- a/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLockHandle.cs
+++ b/framework/src/Volo.Abp.DistributedLocking.Dapr/Volo/Abp/DistributedLocking/Dapr/DaprAbpDistributedLockHandle.cs
@@ -1,5 +1,6 @@
using System.Threading.Tasks;
using Dapr.Client;
+#pragma warning disable DAPR_DISTRIBUTEDLOCK
namespace Volo.Abp.DistributedLocking.Dapr;
diff --git a/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj b/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj
index 9038217125..b911014bf9 100644
--- a/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj
+++ b/framework/src/Volo.Abp.DistributedLocking/Volo.Abp.DistributedLocking.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.DistributedLocking
diff --git a/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj b/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj
index 4dceffad65..6ba46d58ea 100644
--- a/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj
+++ b/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Emailing
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo.csproj
index f92e905688..1dcc18eca2 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo/Volo.Abp.EntityFrameworkCore.MySQL.Pomelo.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.MySQL.Pomelo
@@ -22,6 +22,7 @@
+
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj
index 07b8ad1563..3bb532169b 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.MySQL
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj
index bfe9bea75a..491f007a37 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.Oracle.Devart
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj
index 8f14308ed6..8fd893c6c1 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.Oracle
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj
index 382ef142fa..063f956379 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.PostgreSql
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj
index 23a26e9357..ee5822b500 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.SqlServer
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj
index ac38af2d18..bac7c9df4e 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore.Sqlite
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj
index 1777dfe668..faa31d08a8 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj
+++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.EntityFrameworkCore
diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityTypeBuilderExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityTypeBuilderExtensions.cs
index 2cf90ba5ac..06c5312f32 100644
--- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityTypeBuilderExtensions.cs
+++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/EntityTypeBuilderExtensions.cs
@@ -1,4 +1,5 @@
using System;
+using System.Linq;
using System.Linq.Expressions;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
@@ -17,9 +18,11 @@ public static class EntityTypeBuilderExtensions
#pragma warning disable EF1001
var queryFilterAnnotation = builder.Metadata.FindAnnotation(CoreAnnotationNames.QueryFilter);
#pragma warning restore EF1001
- if (queryFilterAnnotation != null && queryFilterAnnotation.Value != null && queryFilterAnnotation.Value is Expression> existingFilter)
+ if (queryFilterAnnotation != null && queryFilterAnnotation.Value != null && queryFilterAnnotation.Value is QueryFilterCollection queryFilterCollection)
{
- filter = QueryFilterExpressionHelper.CombineExpressions(filter, existingFilter);
+ filter = queryFilterCollection.Where(x => x.Expression is Expression>).Aggregate(filter,
+ (current, queryFilter) => QueryFilterExpressionHelper.CombineExpressions(current,
+ queryFilter.Expression!.As>>()));
}
return builder.HasQueryFilter(filter);
diff --git a/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj b/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj
index a51f699909..c97d6a4807 100644
--- a/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj
+++ b/framework/src/Volo.Abp.EventBus.Abstractions/Volo.Abp.EventBus.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.EventBus.Azure/Volo.Abp.EventBus.Azure.csproj b/framework/src/Volo.Abp.EventBus.Azure/Volo.Abp.EventBus.Azure.csproj
index 9cb3f6698f..0179b08dee 100644
--- a/framework/src/Volo.Abp.EventBus.Azure/Volo.Abp.EventBus.Azure.csproj
+++ b/framework/src/Volo.Abp.EventBus.Azure/Volo.Abp.EventBus.Azure.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.EventBus.Azure
diff --git a/framework/src/Volo.Abp.EventBus.Dapr/Volo.Abp.EventBus.Dapr.csproj b/framework/src/Volo.Abp.EventBus.Dapr/Volo.Abp.EventBus.Dapr.csproj
index 34fe5474c5..4a2f75e55a 100644
--- a/framework/src/Volo.Abp.EventBus.Dapr/Volo.Abp.EventBus.Dapr.csproj
+++ b/framework/src/Volo.Abp.EventBus.Dapr/Volo.Abp.EventBus.Dapr.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj
index b833e00d2c..88ed4a9bb0 100644
--- a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj
+++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj
index 73d9d942a9..27ac38c5ec 100644
--- a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj
+++ b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.EventBus.RabbitMQ
diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj
index 11bff169be..4b384f75b6 100644
--- a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj
+++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.EventBus.Rebus
diff --git a/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj b/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj
index 2361937a7b..8cd89d870a 100644
--- a/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj
+++ b/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.EventBus
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj
index d62d661ff0..a950bacb91 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
true
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs
index dd5df32b8a..518de26437 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/AspNetCore/ExceptionHandling/DefaultExceptionToErrorInfoConverter.cs
@@ -195,13 +195,10 @@ public class DefaultExceptionToErrorInfoConverter : IExceptionToErrorInfoConvert
{
if (exception.EntityType != null)
{
- return new RemoteServiceErrorInfo(
- string.Format(
- L["EntityNotFoundErrorMessage"],
- exception.EntityType.Name,
- exception.Id
- )
- );
+ var message = exception.Id != null
+ ? string.Format(L["EntityNotFoundErrorMessage"], exception.EntityType.Name, exception.Id)
+ : string.Format(L["EntityNotFoundErrorMessageWithoutId"], exception.EntityType.Name);
+ return new RemoteServiceErrorInfo(message);
}
return new RemoteServiceErrorInfo(exception.Message);
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ar.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ar.json
index 07820b6503..d261f4c15c 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ar.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ar.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "المورد غير موجود!",
"DefaultErrorMessage404Detail": "لم يتم العثور على المورد المطلوب على الخادم!",
"EntityNotFoundErrorMessage": "لا يوجد كيان {0} بالمعرف = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "لا يوجد كيان {0}!",
"AbpDbConcurrencyErrorMessage": "تم تغيير البيانات التي قدمتها بالفعل من قبل مستخدم/عميل آخر. يرجى تجاهل التغييرات التي قمت بها والمحاولة من البداية.",
"Error": "خطأ",
"UnhandledException": "استثناء غير معالج!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/cs.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/cs.json
index abfc0c5d29..1bfd23ae29 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/cs.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/cs.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Prostředek nenalezen!",
"DefaultErrorMessage404Detail": "Vyžádaný prostředek nebyl na serveru nalezen!",
"EntityNotFoundErrorMessage": "Neexistující entita {0} s id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Neexistující entita {0}!",
"AbpDbConcurrencyErrorMessage": "Údaje, které jste odeslali, již změnil jiný uživatel/klient. Zahoďte provedené změny a zkuste to od začátku.",
"Error": "Chyba",
"UnhandledException": "Neošetřená výjimka!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/de.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/de.json
index 5930a11e43..7c50dde3fb 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/de.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/de.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Ressource nicht gefunden!",
"DefaultErrorMessage404Detail": "Die angeforderte Ressource konnte nicht auf dem Server gefunden werden!",
"EntityNotFoundErrorMessage": "Es gibt keine Entität {0} mit id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Es gibt keine Entität {0}!",
"AbpDbConcurrencyErrorMessage": "Die von Ihnen übermittelten Daten wurden bereits von einem anderen Benutzer/Kunden geändert. Bitte verwerfen Sie die vorgenommenen Änderungen und versuchen Sie es von vorne.",
"Error": "Fehler",
"UnhandledException": "Unbehandelte Ausnahme!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json
index 00e2982c85..4a2987608f 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/el.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Ο πόρος δεν βρέθηκε!",
"DefaultErrorMessage404Detail": "Ο πόρος που ζητήθηκε δεν βρέθηκε στον διακομιστή!",
"EntityNotFoundErrorMessage": "Δεν υπάρχει οντότητα {0} με id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Δεν υπάρχει οντότητα {0}!",
"AbpDbConcurrencyErrorMessage": "Τα δεδομένα που έχετε υποβάλλει έχουν ήδη τροποποιηθεί από άλλον χρήστη/πελάτη. Απορρίψτε τις αλλαγές που κάνατε και δοκιμάστε από την αρχή.",
"Error": "Σφάλμα",
"UnhandledException": "Απρόσμενη Εξαίρεση!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en-GB.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en-GB.json
index d27cdd3159..7c0ccfecd7 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en-GB.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en-GB.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resource not found!",
"DefaultErrorMessage404Detail": "The resource requested could not be found on the server!",
"EntityNotFoundErrorMessage": "There is no entity {0} with id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "There is no entity {0}!",
"Error": "Error",
"UnhandledException": "Unhandled exception!",
"Authorizing": "Authorizing…",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json
index e78b9d455b..8719e63ac2 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/en.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resource not found!",
"DefaultErrorMessage404Detail": "The resource requested could not be found on the server!",
"EntityNotFoundErrorMessage": "There is no entity {0} with id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "There is no entity {0}!",
"AbpDbConcurrencyErrorMessage": "The data you have submitted has already been changed by another user. Discard your changes and try again.",
"Error": "Error",
"UnhandledException": "Unhandled exception!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json
index 54913d8647..630e519626 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/es.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Recurso no encontrado!",
"DefaultErrorMessage404Detail": "El recurso solitiado podría no encontrarse en el servidor!",
"EntityNotFoundErrorMessage": "No hay una entidad {0} con id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "No hay una entidad {0}!",
"AbpDbConcurrencyErrorMessage": "Los datos que ha enviado ya han sido modificados por otro usuario/cliente. Descarte los cambios que ha realizado e inténtelo desde el principio.",
"Error": "Error",
"UnhandledException": "Excepción no manejada!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json
index c5974f7150..21d3ab9cb9 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fa.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "منبع درخواستی یافت نشد!",
"DefaultErrorMessage404Detail": "منبع درخواستی در سرور یافت نشد!",
"EntityNotFoundErrorMessage": "هیچ موجودیتی {0} با id = {1} وجود ندارد!",
+ "EntityNotFoundErrorMessageWithoutId": "هیچ موجودیتی {0} وجود ندارد!",
"AbpDbConcurrencyErrorMessage": "اطلاعات ارسالی شما قبلاً توسط کاربر/مشتری دیگری تغییر یافته است. لطفاً تغییراتی را که انجام داده اید لغو کنید و مجددا تلاش فرمایید.",
"Error": "خطا",
"UnhandledException": "خطای پیش بینی نشده!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fi.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fi.json
index 125850a6cd..5f1b9c4d17 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fi.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fi.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resurssia ei löydy!",
"DefaultErrorMessage404Detail": "Pyydettyä resurssia ei löytynyt palvelimelta!",
"EntityNotFoundErrorMessage": "Ei ole olemassa kohdetta {0}, jonka tunnus = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Ei ole olemassa kohdetta {0}!",
"AbpDbConcurrencyErrorMessage": "Toinen käyttäjä/asiakas on jo muuttanut lähettämiäsi tietoja. Hylkää tekemäsi muutokset ja yritä alusta.",
"Error": "Virhe",
"UnhandledException": "Käsittelemätön poikkeus!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fr.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fr.json
index 5349e7eed8..3d8a54506a 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fr.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/fr.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Ressource introuvable!",
"DefaultErrorMessage404Detail": "La ressource demandée est introuvable sur le serveur!",
"EntityNotFoundErrorMessage": "Il n'y a pas d'entité {0} avec id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Il n'y a pas d'entité {0}!",
"AbpDbConcurrencyErrorMessage": "Les données que vous avez soumises ont déjà été modifiées par un autre utilisateur/client. Veuillez ignorer les modifications que vous avez apportées et réessayer depuis le début.",
"Error": "Erreur",
"UnhandledException": "Exception non-gérée!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hi.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hi.json
index f9465c3cbd..5a130a91d1 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hi.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hi.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "संसाधन नही मिला!",
"DefaultErrorMessage404Detail": "अनुरोधित संसाधन सर्वर पर नहीं मिला!",
"EntityNotFoundErrorMessage": "Id = {1} के साथ कोई इकाई {0} नहीं है!",
+ "EntityNotFoundErrorMessageWithoutId": "कोई इकाई {0} नहीं है!",
"AbpDbConcurrencyErrorMessage": "आपके द्वारा सबमिट किया गया डेटा पहले ही किसी अन्य उपयोगकर्ता/क्लाइंट द्वारा बदल दिया गया है। कृपया अपने द्वारा किए गए परिवर्तनों को त्याग दें और शुरुआत से ही प्रयास करें।",
"Error": "त्रुटि",
"UnhandledException": "अनियंत्रित अपवाद!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json
index 1a494c5ae5..2ba1c24703 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hr.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resurs nije pronađen!",
"DefaultErrorMessage404Detail": "Zatraženi resurs nije pronađen na poslužitelju!",
"EntityNotFoundErrorMessage": "Ne postoji entitet {0} s ID = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Ne postoji entitet {0}!",
"AbpDbConcurrencyErrorMessage": "Podatke koje ste dostavili već je promijenio drugi korisnik/klijent. Odbacite promjene koje ste napravili i pokušajte ispočetka.",
"Error": "Greška",
"UnhandledException": "Neobrađena iznimka!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hu.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hu.json
index 06a279d759..3ba9f8ffc2 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hu.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/hu.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Az erőforrás nem található!",
"DefaultErrorMessage404Detail": "A kért erőforrás nem található a szerveren",
"EntityNotFoundErrorMessage": "Nincs {0} elem, amelynek id értéke {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Nincs {0} elem!",
"AbpDbConcurrencyErrorMessage": "Az Ön által elküldött adatokat egy másik felhasználó/ügyfél már megváltoztatta. Kérjük, dobja el az elvégzett módosításokat, és próbálja elölről.",
"Error": "Nincs {0} elem, amelynek id értéke {1}!",
"UnhandledException": "Nem kezelt kivétel!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/is.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/is.json
index 648693578e..839c04dded 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/is.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/is.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Auðlind fannst ekki!",
"DefaultErrorMessage404Detail": "Auðlindin sem óskað var eftir fannst ekki á netþjóninum!",
"EntityNotFoundErrorMessage": "Það er enginn eining {0} með id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Það er enginn eining {0}!",
"AbpDbConcurrencyErrorMessage": "Gögnunum sem þú hefur sent inn hefur þegar verið breytt af öðrum notanda/viðskiptavini. Fleygðu breytingunum sem þú hefur gert og reyndu frá upphafi.",
"Error": "Villa",
"UnhandledException": "Ómeðhöndluð villa",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/it.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/it.json
index c51c86ccd9..19d34336a5 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/it.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/it.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Risorsa non trovata!",
"DefaultErrorMessage404Detail": "La risorsa richiesta non è stata trovata sul server!",
"EntityNotFoundErrorMessage": "Non esiste un'entità {0} con id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Non esiste un'entità {0}!",
"AbpDbConcurrencyErrorMessage": "I dati che hai inviato sono già stati modificati da un altro utente/cliente. Per favore scarta le modifiche che hai fatto e riprova dall'inizio.",
"Error": "Errore",
"UnhandledException": "Eccezione non gestita!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/nl.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/nl.json
index 0d91830578..e7dc05d386 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/nl.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/nl.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Bron niet gevonden!",
"DefaultErrorMessage404Detail": "De gevraagde bron kan niet worden gevonden op de server!",
"EntityNotFoundErrorMessage": "Er is geen entiteit {0} met id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Er is geen entiteit {0}!",
"AbpDbConcurrencyErrorMessage": "De door u ingevulde gegevens zijn al gewijzigd door een andere gebruiker/klant. Negeer de wijzigingen die u heeft aangebracht en probeer het vanaf het begin.",
"Error": "Fout",
"UnhandledException": "Onverwerkte uitzondering!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pl-PL.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pl-PL.json
index f8a6b1e126..502d9b4ab9 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pl-PL.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pl-PL.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Nie znaleziono zasobu!",
"DefaultErrorMessage404Detail": "Nie znaleziono zasobu z żądania na serwerze!",
"EntityNotFoundErrorMessage": "Nie istnieje encja {0} z id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Nie istnieje encja {0}!",
"AbpDbConcurrencyErrorMessage": "Przesłane przez Ciebie dane zostały już zmienione przez innego użytkownika/klienta. Odrzuć wprowadzone zmiany i spróbuj od początku.",
"Error": "Błąd",
"UnhandledException": "Nieobsługiwany wyjątek!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pt-BR.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pt-BR.json
index ccc5be09b3..4d88b28954 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pt-BR.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/pt-BR.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Recurso não encontrado!",
"DefaultErrorMessage404Detail": "O recurso requisitado não pode ser encontrado pelo servidor!",
"EntityNotFoundErrorMessage": "Não existe uma entidade {0} com código = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Não existe uma entidade {0}!",
"AbpDbConcurrencyErrorMessage": "Os dados que você enviou já foram alterados por outro usuário/cliente. Descarte as alterações feitas e tente desde o início.",
"Error": "Erro",
"UnhandledException": "Exceção não tratada!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ro-RO.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ro-RO.json
index 4c9ba8602b..ea74f93945 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ro-RO.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ro-RO.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resursa nu a fost găsită!",
"DefaultErrorMessage404Detail": "Resursa solicitată nu a fost găsită pe server!",
"EntityNotFoundErrorMessage": "Nu există entitatea {0} cu id-ul {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Nu există entitatea {0}!",
"AbpDbConcurrencyErrorMessage": "Datele pe care le-aţi trimis au fost modificate deja de către alt utilizator/client. Vă rugăm să renunţaţi la modificările pe care le-aţi făcut şi să încercaţi de la început.",
"Error": "Eroare",
"UnhandledException": "Excepţie netratată!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ru.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ru.json
index 39cc06cb69..aceab939af 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ru.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/ru.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Ресурс не найден!",
"DefaultErrorMessage404Detail": "Запрошенный ресурс не удалось найти на сервере!",
"EntityNotFoundErrorMessage": "Нет объекта {0} с id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Нет объекта {0}!",
"AbpDbConcurrencyErrorMessage": "Отправленные вами данные уже были изменены другим пользователем/клиентом. Отмените внесенные вами изменения и попробуйте с самого начала.",
"Error": "Ошибка",
"UnhandledException": "Непредвиденная ошибка!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sk.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sk.json
index b5d39f33ee..5aba707b33 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sk.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sk.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Zdroj nebol nájdený!",
"DefaultErrorMessage404Detail": "Požadovaný zdroj sa na serveri nenašiel!",
"EntityNotFoundErrorMessage": "Entita {0} s id = {1} neexistuje!",
+ "EntityNotFoundErrorMessageWithoutId": "Entita {0} neexistuje!",
"AbpDbConcurrencyErrorMessage": "Údaje, ktoré ste odoslali, už zmenil iný používateľ/klient. Zahoďte zmeny, ktoré ste vykonali, a skúste to od začiatku.",
"Error": "Error",
"UnhandledException": "Neošetrená výnimka!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sl.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sl.json
index ea8b52bc23..fe4185dd4f 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sl.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sl.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Vir ni bil najden!",
"DefaultErrorMessage404Detail": "Zahtevanega vira ni bilo mogoče najti na strežniku!",
"EntityNotFoundErrorMessage": "Ni entitete {0} z id-jem = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Ni entitete {0}!",
"AbpDbConcurrencyErrorMessage": "Podatke, ki ste jih poslali, je že spremenil drug uporabnik/stranka. Zavrzite spremembe, ki ste jih naredili, in poskusite od začetka.",
"Error": "Napaka",
"UnhandledException": "Neobravnavana napaka!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json
index a7bfc97f4e..daa774c11d 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/sv.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Resurs hittades inte!",
"DefaultErrorMessage404Detail": "Den begärda resursen kunde inte hittas på servern!",
"EntityNotFoundErrorMessage": "Det finns ingen entitet {0} med id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Det finns ingen entitet {0}!",
"AbpDbConcurrencyErrorMessage": "De uppgifter du har skickat har redan ändrats av en annan användare. Kassera dina ändringar och försök igen.",
"Error": "Fel",
"UnhandledException": "Obehandlat undantag!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/tr.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/tr.json
index 4429ff7bfd..5dea2ccb52 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/tr.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/tr.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Kaynak bulunamadı!",
"DefaultErrorMessage404Detail": "İstenilen kaynak sunucuda bulunamadı.",
"EntityNotFoundErrorMessage": "Id değeri {1} olan {0} türünden bir nesne bulunamadı!",
+ "EntityNotFoundErrorMessageWithoutId": "{0} türünden bir nesne bulunamadı!",
"AbpDbConcurrencyErrorMessage": "Gönderdiğiniz veri başka bir kullanıcı/istemci tarafından değiştirilmiş. Lütfen işlemi iptal edip baştan deneyin.",
"Error": "Hata",
"UnhandledException": "Yakalanmamış hata!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/vi.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/vi.json
index 230f005501..9e7d06809c 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/vi.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/vi.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "Tài nguyên không tìm thấy!",
"DefaultErrorMessage404Detail": "Tài nguyên được yêu cầu không được tìm thấy trên máy chủ!",
"EntityNotFoundErrorMessage": "Không có thực thể nào {0} với id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "Không có thực thể nào {0}!",
"AbpDbConcurrencyErrorMessage": "Dữ liệu bạn gửi đã bị người dùng/khách hàng khác thay đổi. Vui lòng hủy các thay đổi bạn đã thực hiện và thử lại từ đầu.",
"Error": "Lỗi",
"UnhandledException": "Tình huống ngoại lệ không thể xử lí được!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json
index 697358fe36..8f0361d1eb 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hans.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "未找到资源!",
"DefaultErrorMessage404Detail": "服务器上找不到所请求的资源!",
"EntityNotFoundErrorMessage": "不存在 id = {1} 的实体 {0}!",
+ "EntityNotFoundErrorMessageWithoutId": "不存在实体 {0}!",
"AbpDbConcurrencyErrorMessage": "您提交的数据已被其他用户/客户更改。请放弃您所做的更改并从头开始尝试。",
"Error": "错误",
"UnhandledException": "未处理异常!",
diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json
index 2a0cb25d76..5c62432e56 100644
--- a/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json
+++ b/framework/src/Volo.Abp.ExceptionHandling/Volo/Abp/ExceptionHandling/Localization/zh-Hant.json
@@ -13,6 +13,7 @@
"DefaultErrorMessage404": "未找到資源!",
"DefaultErrorMessage404Detail": "未在服務中找到請求的資源!",
"EntityNotFoundErrorMessage": "實體 {0} 不存在,id = {1}!",
+ "EntityNotFoundErrorMessageWithoutId": "實體 {0} 不存在!",
"AbpDbConcurrencyErrorMessage": "你提交的數據已經被其他用戶/客戶端修改.請放棄你所做的修改並再次嘗試.",
"Error": "錯誤",
"UnhandledException": "未處理的異常!",
diff --git a/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj b/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj
index efd45ca097..def9e073d6 100644
--- a/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj
+++ b/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Features
diff --git a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj
index dcb23c008a..563ef49f80 100644
--- a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj
+++ b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.FluentValidation
diff --git a/framework/src/Volo.Abp.Gdpr.Abstractions/Volo.Abp.Gdpr.Abstractions.csproj b/framework/src/Volo.Abp.Gdpr.Abstractions/Volo.Abp.Gdpr.Abstractions.csproj
index a59643afaa..e918718925 100644
--- a/framework/src/Volo.Abp.Gdpr.Abstractions/Volo.Abp.Gdpr.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Gdpr.Abstractions/Volo.Abp.Gdpr.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj b/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj
index 1c5441c8ed..32bfa132e5 100644
--- a/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj
+++ b/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.GlobalFeatures
diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeatureInterceptor.cs b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeatureInterceptor.cs
index f2a5d65b2c..3d07f4fe42 100644
--- a/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeatureInterceptor.cs
+++ b/framework/src/Volo.Abp.GlobalFeatures/Volo/Abp/GlobalFeatures/GlobalFeatureInterceptor.cs
@@ -15,7 +15,8 @@ public class GlobalFeatureInterceptor : AbpInterceptor, ITransientDependency
return;
}
- if (!GlobalFeatureHelper.IsGlobalFeatureEnabled(invocation.TargetObject.GetType(), out var attribute))
+ if (invocation.TargetObject != null &&
+ !GlobalFeatureHelper.IsGlobalFeatureEnabled(invocation.TargetObject.GetType(), out var attribute))
{
throw new AbpGlobalFeatureNotEnabledException(code: AbpGlobalFeatureErrorCodes.GlobalFeatureIsNotEnabled)
.WithData("ServiceName", invocation.TargetObject.GetType().FullName!)
diff --git a/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj b/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj
index ef673d2ffd..f2f6381b77 100644
--- a/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj
+++ b/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Guids
diff --git a/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj b/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj
index b939aae76b..2d7c28f075 100644
--- a/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj
+++ b/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.HangFire
diff --git a/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj b/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj
index a5e3b6e184..4dc003f417 100644
--- a/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Http.Abstractions
diff --git a/framework/src/Volo.Abp.Http.Client.Dapr/Volo.Abp.Http.Client.Dapr.csproj b/framework/src/Volo.Abp.Http.Client.Dapr/Volo.Abp.Http.Client.Dapr.csproj
index 6f0154d2d1..4fe948db2c 100644
--- a/framework/src/Volo.Abp.Http.Client.Dapr/Volo.Abp.Http.Client.Dapr.csproj
+++ b/framework/src/Volo.Abp.Http.Client.Dapr/Volo.Abp.Http.Client.Dapr.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.MauiBlazor/Volo.Abp.Http.Client.IdentityModel.MauiBlazor.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.MauiBlazor/Volo.Abp.Http.Client.IdentityModel.MauiBlazor.csproj
index 716ce034d0..868fa11e81 100644
--- a/framework/src/Volo.Abp.Http.Client.IdentityModel.MauiBlazor/Volo.Abp.Http.Client.IdentityModel.MauiBlazor.csproj
+++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.MauiBlazor/Volo.Abp.Http.Client.IdentityModel.MauiBlazor.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Http.Client.IdentityModel.MauiBlazor
diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj
index 1f2dc0661e..3e72869de0 100644
--- a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj
+++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Http.Client.IdentityModel.Web
diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj
index 4ae298e948..6bdf8bb604 100644
--- a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj
+++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Http.Client.IdentityModel.WebAssembly
diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj
index 43b65cfa58..9a994aa923 100644
--- a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj
+++ b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Http.Client.IdentityModel
diff --git a/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj b/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj
index 63a9f1d607..418e5b765a 100644
--- a/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj
+++ b/framework/src/Volo.Abp.Http.Client.Web/Volo.Abp.Http.Client.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Http.Client.Web
diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj
index d53187b622..42a5062403 100644
--- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj
+++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Http.Client
diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs
index 390adfac9c..6e0a5008a3 100644
--- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs
+++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyBase.cs
@@ -97,7 +97,7 @@ public class ClientProxyBase : ITransientDependency
return new ClientProxyRequestContext(
action,
actionArguments
- .Select((x, i) => new KeyValuePair(x.Key, arguments.Values[i].Value))
+ .Select((x, i) => new KeyValuePair(x.Key, arguments.Values[i].Value))
.ToDictionary(x => x.Key, x => x.Value),
typeof(TService));
}
@@ -308,7 +308,7 @@ public class ClientProxyBase : ITransientDependency
}
protected virtual void AddHeaders(
- IReadOnlyDictionary argumentsDictionary,
+ IReadOnlyDictionary argumentsDictionary,
ActionApiDescriptionModel action,
HttpRequestMessage requestMessage,
ApiVersionInfo apiVersion)
@@ -375,7 +375,7 @@ public class ClientProxyBase : ITransientDependency
return input;
}
- protected virtual CancellationToken GetCancellationToken(IReadOnlyDictionary arguments)
+ protected virtual CancellationToken GetCancellationToken(IReadOnlyDictionary arguments)
{
var cancellationTokenArg = arguments.LastOrDefault();
diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestContext.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestContext.cs
index 0caf2d8480..1a96dcba40 100644
--- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestContext.cs
+++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestContext.cs
@@ -11,14 +11,14 @@ public class ClientProxyRequestContext
public ActionApiDescriptionModel Action { get; }
[NotNull]
- public IReadOnlyDictionary Arguments { get; }
+ public IReadOnlyDictionary Arguments { get; }
[NotNull]
public Type ServiceType { get; }
public ClientProxyRequestContext(
[NotNull] ActionApiDescriptionModel action,
- [NotNull] IReadOnlyDictionary arguments,
+ [NotNull] IReadOnlyDictionary arguments,
[NotNull] Type serviceType)
{
ServiceType = serviceType;
diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestPayloadBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestPayloadBuilder.cs
index 91fc6f33bf..a158d3067d 100644
--- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestPayloadBuilder.cs
+++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyRequestPayloadBuilder.cs
@@ -46,7 +46,7 @@ public class ClientProxyRequestPayloadBuilder : ITransientDependency
HttpClientProxyingOptions = httpClientProxyingOptions.Value;
}
- public virtual async Task BuildContentAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, IJsonSerializer jsonSerializer, ApiVersionInfo apiVersion)
+ public virtual async Task BuildContentAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, IJsonSerializer jsonSerializer, ApiVersionInfo apiVersion)
{
var body = await GenerateBodyAsync(action, methodArguments, jsonSerializer);
if (body != null)
@@ -59,7 +59,7 @@ public class ClientProxyRequestPayloadBuilder : ITransientDependency
return body;
}
- protected virtual Task GenerateBodyAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, IJsonSerializer jsonSerializer)
+ protected virtual Task GenerateBodyAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, IJsonSerializer jsonSerializer)
{
var parameters = action
.Parameters
@@ -87,7 +87,7 @@ public class ClientProxyRequestPayloadBuilder : ITransientDependency
return Task.FromResult(new StringContent(jsonSerializer.Serialize(value), Encoding.UTF8, MimeTypes.Application.Json));
}
- protected virtual async Task GenerateFormPostDataAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments)
+ protected virtual async Task GenerateFormPostDataAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments)
{
var parameters = action
.Parameters
diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs
index 69248680cc..bbe737a020 100644
--- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs
+++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/ClientProxying/ClientProxyUrlBuilder.cs
@@ -49,7 +49,7 @@ public class ClientProxyUrlBuilder : ITransientDependency
Clock = clock;
}
- public async Task GenerateUrlWithParametersAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, ApiVersionInfo apiVersion)
+ public async Task GenerateUrlWithParametersAsync(ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, ApiVersionInfo apiVersion)
{
// The ASP.NET Core route value provider and query string value provider:
// Treat values as invariant culture.
@@ -65,7 +65,7 @@ public class ClientProxyUrlBuilder : ITransientDependency
}
}
- protected virtual async Task ReplacePathVariablesAsync(StringBuilder urlBuilder, ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, ApiVersionInfo apiVersion)
+ protected virtual async Task ReplacePathVariablesAsync(StringBuilder urlBuilder, ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, ApiVersionInfo apiVersion)
{
var pathParameters = action.Parameters
.Where(p => p.BindingSourceId == ParameterBindingSources.Path)
@@ -129,7 +129,7 @@ public class ClientProxyUrlBuilder : ITransientDependency
}
}
- protected virtual async Task AddQueryStringParametersAsync(StringBuilder urlBuilder, ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, ApiVersionInfo apiVersion)
+ protected virtual async Task AddQueryStringParametersAsync(StringBuilder urlBuilder, ActionApiDescriptionModel action, IReadOnlyDictionary methodArguments, ApiVersionInfo apiVersion)
{
var queryStringParameters = action.Parameters
.Where(p => p.BindingSourceId.IsIn(ParameterBindingSources.ModelBinding, ParameterBindingSources.Query))
diff --git a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Proxying/HttpActionParameterHelper.cs b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Proxying/HttpActionParameterHelper.cs
index f9fc79b81f..e073f9c357 100644
--- a/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Proxying/HttpActionParameterHelper.cs
+++ b/framework/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/Proxying/HttpActionParameterHelper.cs
@@ -6,7 +6,7 @@ namespace Volo.Abp.Http.Client.Proxying;
internal static class HttpActionParameterHelper
{
- public static object? FindParameterValue(IReadOnlyDictionary methodArguments, ParameterApiDescriptionModel apiParameter)
+ public static object? FindParameterValue(IReadOnlyDictionary methodArguments, ParameterApiDescriptionModel apiParameter)
{
var value = methodArguments.GetOrDefault(apiParameter.NameOnMethod);
if (value == null)
diff --git a/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj b/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj
index 3514dfa55e..1f0d9927ca 100644
--- a/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj
+++ b/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Http
diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj
index 7f318d7215..2c3304871c 100644
--- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj
+++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.IdentityModel
diff --git a/framework/src/Volo.Abp.Imaging.Abstractions/Volo.Abp.Imaging.Abstractions.csproj b/framework/src/Volo.Abp.Imaging.Abstractions/Volo.Abp.Imaging.Abstractions.csproj
index 3a2c1f6532..67adce53b8 100644
--- a/framework/src/Volo.Abp.Imaging.Abstractions/Volo.Abp.Imaging.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Imaging.Abstractions/Volo.Abp.Imaging.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Imaging.Abstractions
diff --git a/framework/src/Volo.Abp.Imaging.Abstractions/Volo/Abp/Imaging/ImageResizeArgs.cs b/framework/src/Volo.Abp.Imaging.Abstractions/Volo/Abp/Imaging/ImageResizeArgs.cs
index 4a6df596f5..3cb485f04e 100644
--- a/framework/src/Volo.Abp.Imaging.Abstractions/Volo/Abp/Imaging/ImageResizeArgs.cs
+++ b/framework/src/Volo.Abp.Imaging.Abstractions/Volo/Abp/Imaging/ImageResizeArgs.cs
@@ -4,9 +4,9 @@ namespace Volo.Abp.Imaging;
public class ImageResizeArgs
{
- private int _width;
- public int Width
- {
+ private uint _width;
+ public uint Width
+ {
get => _width;
set
{
@@ -14,14 +14,14 @@ public class ImageResizeArgs
{
throw new ArgumentException("Width cannot be negative!", nameof(value));
}
-
+
_width = value;
}
}
-
- private int _height;
- public int Height
- {
+
+ private uint _height;
+ public uint Height
+ {
get => _height;
set
{
@@ -29,14 +29,14 @@ public class ImageResizeArgs
{
throw new ArgumentException("Height cannot be negative!", nameof(value));
}
-
+
_height = value;
}
}
-
+
public ImageResizeMode Mode { get; set; } = ImageResizeMode.Default;
- public ImageResizeArgs(int? width = null, int? height = null, ImageResizeMode? mode = null)
+ public ImageResizeArgs(uint? width = null, uint? height = null, ImageResizeMode? mode = null)
{
if (mode.HasValue)
{
@@ -46,4 +46,4 @@ public class ImageResizeArgs
Width = width ?? 0;
Height = height ?? 0;
}
-}
\ No newline at end of file
+}
diff --git a/framework/src/Volo.Abp.Imaging.AspNetCore/Volo.Abp.Imaging.AspNetCore.csproj b/framework/src/Volo.Abp.Imaging.AspNetCore/Volo.Abp.Imaging.AspNetCore.csproj
index 802585d44a..cf6d464b32 100644
--- a/framework/src/Volo.Abp.Imaging.AspNetCore/Volo.Abp.Imaging.AspNetCore.csproj
+++ b/framework/src/Volo.Abp.Imaging.AspNetCore/Volo.Abp.Imaging.AspNetCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Imaging.AspNetCore
diff --git a/framework/src/Volo.Abp.Imaging.AspNetCore/Volo/Abp/Imaging/ResizeImageAttribute.cs b/framework/src/Volo.Abp.Imaging.AspNetCore/Volo/Abp/Imaging/ResizeImageAttribute.cs
index 65b59bef6f..5c5384d2e5 100644
--- a/framework/src/Volo.Abp.Imaging.AspNetCore/Volo/Abp/Imaging/ResizeImageAttribute.cs
+++ b/framework/src/Volo.Abp.Imaging.AspNetCore/Volo/Abp/Imaging/ResizeImageAttribute.cs
@@ -11,34 +11,34 @@ namespace Volo.Abp.Imaging;
public class ResizeImageAttribute : ActionFilterAttribute
{
- public int? Width { get; }
- public int? Height { get; }
-
+ public uint? Width { get; }
+ public uint? Height { get; }
+
public ImageResizeMode Mode { get; set; }
public string[] Parameters { get; }
-
- public ResizeImageAttribute(int width, int height, params string[] parameters)
+
+ public ResizeImageAttribute(uint width, uint height, params string[] parameters)
{
Width = width;
Height = height;
Parameters = parameters;
}
-
- public ResizeImageAttribute(int size, params string[] parameters)
+
+ public ResizeImageAttribute(uint size, params string[] parameters)
{
Width = size;
Height = size;
Parameters = parameters;
}
- public async override Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
+ public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
var parameters = Parameters.Any()
? context.ActionArguments.Where(x => Parameters.Contains(x.Key)).ToArray()
: context.ActionArguments.ToArray();
-
+
var imageResizer = context.HttpContext.RequestServices.GetRequiredService();
-
+
foreach (var (key, value) in parameters)
{
object? resizedValue = value switch {
@@ -57,14 +57,14 @@ public class ResizeImageAttribute : ActionFilterAttribute
await next();
}
-
+
protected virtual async Task ResizeImageAsync(IFormFile file, IImageResizer imageResizer)
{
if(file.Headers == null || file.ContentType == null || !file.ContentType.StartsWith("image/"))
{
return file;
}
-
+
var result = await imageResizer.ResizeAsync(file.OpenReadStream(), new ImageResizeArgs(Width, Height, Mode), file.ContentType);
if (result.State != ImageProcessState.Done)
@@ -76,14 +76,14 @@ public class ResizeImageAttribute : ActionFilterAttribute
Headers = file.Headers
};
}
-
+
protected virtual async Task ResizeImageAsync(IRemoteStreamContent remoteStreamContent, IImageResizer imageResizer)
{
if(remoteStreamContent.ContentType == null || !remoteStreamContent.ContentType.StartsWith("image/"))
{
return remoteStreamContent;
}
-
+
var result = await imageResizer.ResizeAsync(remoteStreamContent.GetStream(), new ImageResizeArgs(Width, Height, Mode), remoteStreamContent.ContentType);
if (result.State != ImageProcessState.Done)
@@ -96,7 +96,7 @@ public class ResizeImageAttribute : ActionFilterAttribute
remoteStreamContent.Dispose();
return new RemoteStreamContent(result.Result, fileName, contentType);
}
-
+
protected virtual async Task ResizeImageAsync(Stream stream, IImageResizer imageResizer)
{
var result = await imageResizer.ResizeAsync(stream, new ImageResizeArgs(Width, Height, Mode));
@@ -109,9 +109,9 @@ public class ResizeImageAttribute : ActionFilterAttribute
await stream.DisposeAsync();
return result.Result;
}
-
+
protected virtual async Task ResizeImageAsync(byte[] bytes, IImageResizer imageResizer)
{
return (await imageResizer.ResizeAsync(bytes, new ImageResizeArgs(Width, Height, Mode))).Result;
}
-}
\ No newline at end of file
+}
diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj
index 1ad12f02ea..5e153b4076 100644
--- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj
+++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Imaging.ImageSharp
diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs
index e52155eaeb..39dfab7752 100644
--- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs
+++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs
@@ -55,7 +55,7 @@ public class ImageSharpImageResizerContributor : IImageResizerContributor, ITran
}
public virtual async Task> TryResizeAsync(
- byte[] bytes,
+ byte[] bytes,
ImageResizeArgs resizeArgs,
string? mimeType = null,
CancellationToken cancellationToken = default)
@@ -107,17 +107,17 @@ public class ImageSharpImageResizerContributor : IImageResizerContributor, ITran
private static Size GetSize(ImageResizeArgs resizeArgs)
{
var size = new Size();
-
+
if (resizeArgs.Width > 0)
{
- size.Width = resizeArgs.Width;
+ size.Width = (int)resizeArgs.Width;
}
if (resizeArgs.Height > 0)
{
- size.Height = resizeArgs.Height;
+ size.Height = (int)resizeArgs.Height;
}
return size;
}
-}
\ No newline at end of file
+}
diff --git a/framework/src/Volo.Abp.Imaging.MagickNet/Volo.Abp.Imaging.MagickNet.csproj b/framework/src/Volo.Abp.Imaging.MagickNet/Volo.Abp.Imaging.MagickNet.csproj
index 63dfd0bcce..acd780d9d1 100644
--- a/framework/src/Volo.Abp.Imaging.MagickNet/Volo.Abp.Imaging.MagickNet.csproj
+++ b/framework/src/Volo.Abp.Imaging.MagickNet/Volo.Abp.Imaging.MagickNet.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Imaging.MagickNet
diff --git a/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs b/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs
index 3938bc6eba..faabf882b9 100644
--- a/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs
+++ b/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs
@@ -29,7 +29,7 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
{
using var image = new MagickImage(memoryStream);
- if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.FormatInfo?.MimeType))
+ if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.Format))
{
return new ImageResizeResult(stream, ImageProcessState.Unsupported);
}
@@ -63,7 +63,7 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
using var image = new MagickImage(bytes);
- if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.FormatInfo?.MimeType))
+ if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.Format))
{
return Task.FromResult(new ImageResizeResult(bytes, ImageProcessState.Unsupported));
}
@@ -73,9 +73,9 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
return Task.FromResult(new ImageResizeResult(image.ToByteArray(), ImageProcessState.Done));
}
- protected virtual bool CanResize(string? mimeType)
+ protected virtual bool CanResize(string mimeType)
{
- return mimeType switch {
+ return mimeType.ToLowerInvariant() switch {
MimeTypes.Image.Jpeg => true,
MimeTypes.Image.Png => true,
MimeTypes.Image.Gif => true,
@@ -86,6 +86,19 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
};
}
+ protected virtual bool CanResize(MagickFormat format)
+ {
+ return format switch {
+ MagickFormat.Jpeg => true,
+ MagickFormat.Png => true,
+ MagickFormat.Gif => true,
+ MagickFormat.Bmp => true,
+ MagickFormat.Tiff => true,
+ MagickFormat.WebP => true,
+ _ => false
+ };
+ }
+
protected virtual void Resize(MagickImage image, ImageResizeArgs resizeArgs)
{
ApplyResizeMode(image, resizeArgs);
@@ -122,21 +135,21 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
}
- protected virtual int GetTargetHeight(ImageResizeArgs resizeArgs, int min, int sourceWidth, int sourceHeight)
+ protected virtual uint GetTargetHeight(ImageResizeArgs resizeArgs, uint min, uint sourceWidth, uint sourceHeight)
{
if (resizeArgs.Height == 0 && resizeArgs.Width > 0)
{
- return Math.Max(min, (int)Math.Round(sourceHeight * resizeArgs.Width / (float)sourceWidth));
+ return (uint) Math.Max(min, Math.Round(sourceHeight * resizeArgs.Width / (float)sourceWidth));
}
return resizeArgs.Height;
}
- protected virtual int GetTargetWidth(ImageResizeArgs resizeArgs, int min, int sourceWidth, int sourceHeight)
+ protected virtual uint GetTargetWidth(ImageResizeArgs resizeArgs, uint min, uint sourceWidth, uint sourceHeight)
{
if (resizeArgs.Width == 0 && resizeArgs.Height > 0)
{
- return Math.Max(min, (int)Math.Round(sourceWidth * resizeArgs.Height / (float)sourceHeight));
+ return (uint) Math.Max(min, Math.Round(sourceWidth * resizeArgs.Height / (float)sourceHeight));
}
return resizeArgs.Width;
@@ -180,11 +193,11 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
if (percentHeight < percentWidth)
{
- newWidth = (int)Math.Round(sourceWidth * percentHeight);
+ newWidth = (uint)Math.Round(sourceWidth * percentHeight);
}
else
{
- newHeight = (int)Math.Round(sourceHeight * percentWidth);
+ newHeight = (uint)Math.Round(sourceHeight * percentWidth);
}
image.Resize(newWidth, newHeight);
@@ -205,8 +218,8 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
var newWidth = targetWidth;
var newHeight = targetHeight;
- var boxPadWidth = targetWidth > 0 ? targetWidth : (int)Math.Round(sourceWidth * percentHeight);
- var boxPadHeight = targetHeight > 0 ? targetHeight : (int)Math.Round(sourceHeight * percentWidth);
+ var boxPadWidth = targetWidth > 0 ? targetWidth : (uint)Math.Round(sourceWidth * percentHeight);
+ var boxPadHeight = targetHeight > 0 ? targetHeight : (uint)Math.Round(sourceHeight * percentWidth);
if (sourceWidth < boxPadWidth && sourceHeight < boxPadHeight)
{
@@ -235,11 +248,11 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
if (imageRatio < ratio)
{
- targetHeight = (int)(sourceHeight * percentWidth);
+ targetHeight = (uint)(sourceHeight * percentWidth);
}
else
{
- targetWidth = (int)(sourceWidth * percentHeight);
+ targetWidth = (uint)(sourceWidth * percentHeight);
}
image.Resize(targetWidth, targetHeight);
@@ -269,21 +282,21 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
if (widthDiff > heightDiff)
{
- targetWidth = (int)Math.Round(targetHeight / imageRatio);
+ targetWidth = (uint)Math.Round(targetHeight / imageRatio);
}
else if (widthDiff < heightDiff)
{
- targetHeight = (int)Math.Round(targetWidth * imageRatio);
+ targetHeight = (uint)Math.Round(targetWidth * imageRatio);
}
else
{
if (targetHeight > targetWidth)
{
- targetWidth = (int)Math.Round(sourceHeight * percentWidth);
+ targetWidth = (uint)Math.Round(sourceHeight * percentWidth);
}
else
{
- targetHeight = (int)Math.Round(sourceHeight * percentWidth);
+ targetHeight = (uint)Math.Round(sourceHeight * percentWidth);
}
}
}
@@ -312,13 +325,13 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien
Gravity.Center);
}
- protected virtual float CalculatePercent(int imageHeightOrWidth, int heightOrWidth)
+ protected virtual float CalculatePercent(uint imageHeightOrWidth, uint heightOrWidth)
{
return heightOrWidth / (float)imageHeightOrWidth;
}
- protected virtual float CalculateRatio(int width, int height)
+ protected virtual float CalculateRatio(uint width, uint height)
{
return height / (float)width;
}
-}
\ No newline at end of file
+}
diff --git a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo.Abp.Imaging.SkiaSharp.csproj b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo.Abp.Imaging.SkiaSharp.csproj
index bca91fe1e5..c1df2bfebb 100644
--- a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo.Abp.Imaging.SkiaSharp.csproj
+++ b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo.Abp.Imaging.SkiaSharp.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Imaging.SkiaSharp
diff --git a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs
index 0ba2c7c833..7a5db23620 100644
--- a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs
+++ b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpImageResizerContributor.cs
@@ -50,7 +50,7 @@ public class SkiaSharpImageResizerContributor : IImageResizerContributor, ITrans
var (memoryBitmapStream, memorySkCodecStream) = await CreateMemoryStream(stream);
using var original = SKBitmap.Decode(memoryBitmapStream);
- using var resized = original.Resize(new SKImageInfo(resizeArgs.Width, resizeArgs.Height), Options.SKFilterQuality);
+ using var resized = original.Resize(new SKImageInfo((int)resizeArgs.Width, (int)resizeArgs.Height), Options.SKSamplingOptions);
using var image = SKImage.FromBitmap(resized);
using var codec = SKCodec.Create(memorySkCodecStream);
var memoryStream = new MemoryStream();
diff --git a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpResizerOptions.cs b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpResizerOptions.cs
index 6bc220feb1..22cfcb1744 100644
--- a/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpResizerOptions.cs
+++ b/framework/src/Volo.Abp.Imaging.SkiaSharp/Volo/Abp/Imaging/SkiaSharpResizerOptions.cs
@@ -4,13 +4,13 @@ namespace Volo.Abp.Imaging;
public class SkiaSharpResizerOptions
{
- public SKFilterQuality SKFilterQuality { get; set; }
+ public SKSamplingOptions SKSamplingOptions { get; set; }
public int Quality { get; set; }
public SkiaSharpResizerOptions()
{
- SKFilterQuality = SKFilterQuality.None;
+ SKSamplingOptions = SKSamplingOptions.Default;
Quality = 75;
}
}
diff --git a/framework/src/Volo.Abp.Json.Abstractions/Volo.Abp.Json.Abstractions.csproj b/framework/src/Volo.Abp.Json.Abstractions/Volo.Abp.Json.Abstractions.csproj
index 2e1b4ebd7e..c251398039 100644
--- a/framework/src/Volo.Abp.Json.Abstractions/Volo.Abp.Json.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Json.Abstractions/Volo.Abp.Json.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Json.Abstractions
diff --git a/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj b/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj
index 2d9cbf22aa..5dd75a7243 100644
--- a/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj
+++ b/framework/src/Volo.Abp.Json.Newtonsoft/Volo.Abp.Json.Newtonsoft.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Json.Newtonsoft
diff --git a/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj b/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj
index 6d388b5764..1b81259da3 100644
--- a/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj
+++ b/framework/src/Volo.Abp.Json.SystemTextJson/Volo.Abp.Json.SystemTextJson.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Json.SystemTextJson
diff --git a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj
index 7d19142354..619848230e 100644
--- a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj
+++ b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Json
diff --git a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj
index 80cfb6f87b..2a747576bc 100644
--- a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj
+++ b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.Ldap.Abstractions/Volo.Abp.Ldap.Abstractions.csproj b/framework/src/Volo.Abp.Ldap.Abstractions/Volo.Abp.Ldap.Abstractions.csproj
index 11aed678d2..2e94cfda45 100644
--- a/framework/src/Volo.Abp.Ldap.Abstractions/Volo.Abp.Ldap.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Ldap.Abstractions/Volo.Abp.Ldap.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Ldap.Abstractions
diff --git a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj
index 6bed4b75a2..bced0fceb1 100644
--- a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj
+++ b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Ldap
diff --git a/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj b/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj
index 4a6342248c..ced01b1eb5 100644
--- a/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Localization.Abstractions
diff --git a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj
index 59f7772dc6..920883a866 100644
--- a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj
+++ b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Localization
diff --git a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj
index 8d760a7e05..5bb5520611 100644
--- a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj
+++ b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.MailKit
diff --git a/framework/src/Volo.Abp.Mapperly/FodyWeavers.xml b/framework/src/Volo.Abp.Mapperly/FodyWeavers.xml
new file mode 100644
index 0000000000..00e1d9a1c1
--- /dev/null
+++ b/framework/src/Volo.Abp.Mapperly/FodyWeavers.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Mapperly/FodyWeavers.xsd b/framework/src/Volo.Abp.Mapperly/FodyWeavers.xsd
new file mode 100644
index 0000000000..3f3946e282
--- /dev/null
+++ b/framework/src/Volo.Abp.Mapperly/FodyWeavers.xsd
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed.
+
+
+
+
+ A comma-separated list of error codes that can be safely ignored in assembly verification.
+
+
+
+
+ 'false' to turn off automatic generation of the XML Schema file.
+
+
+
+
+
\ No newline at end of file
diff --git a/framework/src/Volo.Abp.Mapperly/Volo.Abp.Mapperly.csproj b/framework/src/Volo.Abp.Mapperly/Volo.Abp.Mapperly.csproj
index f32da75c72..10eb9d8c73 100644
--- a/framework/src/Volo.Abp.Mapperly/Volo.Abp.Mapperly.csproj
+++ b/framework/src/Volo.Abp.Mapperly/Volo.Abp.Mapperly.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Mapperly
diff --git a/framework/src/Volo.Abp.Maui.Client/Volo.Abp.Maui.Client.csproj b/framework/src/Volo.Abp.Maui.Client/Volo.Abp.Maui.Client.csproj
index 6906836c0a..7bbf84d2ba 100644
--- a/framework/src/Volo.Abp.Maui.Client/Volo.Abp.Maui.Client.csproj
+++ b/framework/src/Volo.Abp.Maui.Client/Volo.Abp.Maui.Client.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Maui.Client
diff --git a/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj b/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj
index c720c3267b..e6e53a124c 100644
--- a/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj
+++ b/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.MemoryDb
diff --git a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj
index 989c887c66..6ee2461a6f 100644
--- a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj
+++ b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Minify
diff --git a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj
index de1d337497..165b0c7dd8 100644
--- a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj
+++ b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.MongoDB
diff --git a/framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj b/framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj
index 7d292b0766..c450371505 100644
--- a/framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj
+++ b/framework/src/Volo.Abp.MultiLingualObjects/Volo.Abp.MultiLingualObjects.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.MultiLingualObject
diff --git a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj
index a7cb84118f..30d3d44abf 100644
--- a/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj
+++ b/framework/src/Volo.Abp.MultiTenancy.Abstractions/Volo.Abp.MultiTenancy.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.MultiTenancy.Abstractions
diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj b/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj
index c524649069..1220abaacc 100644
--- a/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj
+++ b/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.MultiTenancy
diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj b/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj
index 2c930c7dd2..01ab05798a 100644
--- a/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj
+++ b/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.ObjectExtending
diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj b/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj
index 2f8ac48b78..9546cd83eb 100644
--- a/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj
+++ b/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.ObjectMapping
diff --git a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj
index 2379e969be..12613702f6 100644
--- a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj
+++ b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Quartz
diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj b/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj
index e77889d5d9..1580e0fae0 100644
--- a/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj
+++ b/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.RabbitMQ
diff --git a/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj b/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj
index 4d2588c1e4..00d2bba8d6 100644
--- a/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj
+++ b/framework/src/Volo.Abp.RemoteServices/Volo.Abp.RemoteServices.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.RemoteServices
diff --git a/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj b/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj
index 5ccaf9883f..cb4d7e7efa 100644
--- a/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj
+++ b/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Security
diff --git a/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj b/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj
index 685abd437e..d57b4b73f8 100644
--- a/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj
+++ b/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Serialization
diff --git a/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj b/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj
index aedbde1fd4..b33e5af031 100644
--- a/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj
+++ b/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Settings
diff --git a/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj b/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj
index 8bacff7744..8c2b0dbd27 100644
--- a/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj
+++ b/framework/src/Volo.Abp.Sms.Aliyun/Volo.Abp.Sms.Aliyun.csproj
@@ -3,7 +3,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Sms.Aliyun
diff --git a/framework/src/Volo.Abp.Sms.TencentCloud/Volo.Abp.Sms.TencentCloud.csproj b/framework/src/Volo.Abp.Sms.TencentCloud/Volo.Abp.Sms.TencentCloud.csproj
index 3077ff392e..349fc82f7c 100644
--- a/framework/src/Volo.Abp.Sms.TencentCloud/Volo.Abp.Sms.TencentCloud.csproj
+++ b/framework/src/Volo.Abp.Sms.TencentCloud/Volo.Abp.Sms.TencentCloud.csproj
@@ -3,7 +3,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Sms.TencentCloud
diff --git a/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj b/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj
index 68eba5f5a6..25145e2d17 100644
--- a/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj
+++ b/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Sms
diff --git a/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj b/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj
index c88d3905a9..16e093f58e 100644
--- a/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj
+++ b/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Specifications
diff --git a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj
index d62ba9c65d..3a5dac82e7 100644
--- a/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj
+++ b/framework/src/Volo.Abp.Swashbuckle/Volo.Abp.Swashbuckle.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
enable
Nullable
Volo.Abp.Swashbuckle
diff --git a/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj b/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj
index 9fb0cffb34..ced20624e2 100644
--- a/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj
+++ b/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.TestBase
diff --git a/framework/src/Volo.Abp.TestBase/Volo/Abp/Testing/AbpIntegratedTest.cs b/framework/src/Volo.Abp.TestBase/Volo/Abp/Testing/AbpIntegratedTest.cs
index 9427c1de85..abb10173d6 100644
--- a/framework/src/Volo.Abp.TestBase/Volo/Abp/Testing/AbpIntegratedTest.cs
+++ b/framework/src/Volo.Abp.TestBase/Volo/Abp/Testing/AbpIntegratedTest.cs
@@ -29,6 +29,8 @@ public abstract class AbpIntegratedTest : AbpTestBaseWithService
application.Initialize(TestServiceScope.ServiceProvider);
ServiceProvider = Application.ServiceProvider;
+
+ AfterInitialize();
}
protected virtual IServiceCollection CreateServiceCollection()
@@ -56,6 +58,11 @@ public abstract class AbpIntegratedTest : AbpTestBaseWithService
return services.BuildServiceProviderFromFactory();
}
+ protected virtual void AfterInitialize()
+ {
+
+ }
+
public virtual void Dispose()
{
Application.Shutdown();
diff --git a/framework/src/Volo.Abp.TextTemplating.Core/Volo.Abp.TextTemplating.Core.csproj b/framework/src/Volo.Abp.TextTemplating.Core/Volo.Abp.TextTemplating.Core.csproj
index bb6d88e762..8c04e20190 100644
--- a/framework/src/Volo.Abp.TextTemplating.Core/Volo.Abp.TextTemplating.Core.csproj
+++ b/framework/src/Volo.Abp.TextTemplating.Core/Volo.Abp.TextTemplating.Core.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj b/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj
index bf89fd999b..990cf28c67 100644
--- a/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj
+++ b/framework/src/Volo.Abp.TextTemplating.Razor/Volo.Abp.TextTemplating.Razor.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj
index 889affb425..6571b8340f 100644
--- a/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj
+++ b/framework/src/Volo.Abp.TextTemplating.Scriban/Volo.Abp.TextTemplating.Scriban.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj
index e030225b87..d83f39fb59 100644
--- a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj
+++ b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
diff --git a/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj b/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj
index 1295c3f143..dca1407ce2 100644
--- a/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj
+++ b/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Threading
diff --git a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj
index 5cc49b9db1..6af7fbef4e 100644
--- a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj
+++ b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Timing
diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj b/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj
index b95dd71be1..c5bc49a2bb 100644
--- a/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj
+++ b/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.UI.Navigation
diff --git a/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj b/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj
index 0ed37529e5..b18d09d484 100644
--- a/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj
+++ b/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.UI
diff --git a/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj b/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj
index 946584c73f..9b35b0cd7c 100644
--- a/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj
+++ b/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Uow
diff --git a/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj b/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj
index 808701de61..a31e1c043a 100644
--- a/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj
+++ b/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Validation.Abstractions
diff --git a/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj b/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj
index a2c6b1acc7..2caf43a9da 100644
--- a/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj
+++ b/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.Validation
diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/IObjectValidator.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/IObjectValidator.cs
index 51cff66c10..993c85f30d 100644
--- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/IObjectValidator.cs
+++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/IObjectValidator.cs
@@ -7,13 +7,13 @@ namespace Volo.Abp.Validation;
public interface IObjectValidator
{
Task ValidateAsync(
- object validatingObject,
+ object? validatingObject,
string? name = null,
bool allowNull = false
);
Task> GetErrorsAsync(
- object validatingObject,
+ object? validatingObject,
string? name = null,
bool allowNull = false
);
diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidationContext.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidationContext.cs
index 6ea526dc03..6989b1fe0b 100644
--- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidationContext.cs
+++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidationContext.cs
@@ -4,15 +4,15 @@ namespace Volo.Abp.Validation;
public class MethodInvocationValidationContext : AbpValidationResult
{
- public object TargetObject { get; }
+ public object? TargetObject { get; }
public MethodInfo Method { get; }
- public object[] ParameterValues { get; }
+ public object?[] ParameterValues { get; }
public ParameterInfo[] Parameters { get; }
- public MethodInvocationValidationContext(object targetObject, MethodInfo method, object[] parameterValues)
+ public MethodInvocationValidationContext(object? targetObject, MethodInfo method, object?[] parameterValues)
{
TargetObject = targetObject;
Method = method;
diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidator.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidator.cs
index f0a34c96c6..177260ad5c 100644
--- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidator.cs
+++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/MethodInvocationValidator.cs
@@ -91,7 +91,7 @@ public class MethodInvocationValidator : IMethodInvocationValidator, ITransientD
}
}
- protected virtual async Task AddMethodParameterValidationErrorsAsync(IAbpValidationResult context, ParameterInfo parameterInfo, object parameterValue)
+ protected virtual async Task AddMethodParameterValidationErrorsAsync(IAbpValidationResult context, ParameterInfo parameterInfo, object? parameterValue)
{
var allowNulls = parameterInfo.IsOptional ||
parameterInfo.IsOut ||
diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ObjectValidator.cs b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ObjectValidator.cs
index dd3ff2f395..48f0fc377e 100644
--- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ObjectValidator.cs
+++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/ObjectValidator.cs
@@ -19,7 +19,7 @@ public class ObjectValidator : IObjectValidator, ITransientDependency
Options = options.Value;
}
- public virtual async Task ValidateAsync(object validatingObject, string? name = null, bool allowNull = false)
+ public virtual async Task ValidateAsync(object? validatingObject, string? name = null, bool allowNull = false)
{
var errors = await GetErrorsAsync(validatingObject, name, allowNull);
@@ -32,7 +32,7 @@ public class ObjectValidator : IObjectValidator, ITransientDependency
}
}
- public virtual async Task> GetErrorsAsync(object validatingObject, string? name = null, bool allowNull = false)
+ public virtual async Task> GetErrorsAsync(object? validatingObject, string? name = null, bool allowNull = false)
{
if (validatingObject == null)
{
diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj
index caf4c9818b..837aea7b8c 100644
--- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj
+++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
enable
Nullable
Volo.Abp.VirtualFileSystem
diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs
index 9ea816e0eb..bacfce0495 100644
--- a/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs
+++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo/Abp/VirtualFileSystem/Embedded/AbpEmbeddedFileProvider.cs
@@ -107,6 +107,21 @@ public class AbpEmbeddedFileProvider : DictionaryBasedFileProvider
{
resourceName = resourceName.Substring(BaseNamespace!.Length + 1);
}
+ else
+ {
+ // Fix NET 10 RC 1 Microsoft.Extensions.FileProviders.Embedded issue temporarily
+ //https://github.com/dotnet/aspnetcore/issues/63719
+ string[] webContentFolders = ["wwwroot", "Pages", "Views", "Themes", "Components"];
+ foreach (var contentFolder in webContentFolders.Where(contentFolder => resourceName.Contains($".{contentFolder}.")))
+ {
+ var index = resourceName.IndexOf(contentFolder, StringComparison.CurrentCultureIgnoreCase);
+ if (index > 0)
+ {
+ resourceName = resourceName.Substring(index);
+ }
+ break;
+ }
+ }
var pathParts = resourceName.Split('.');
if (pathParts.Length <= 2)
diff --git a/framework/src/Volo.Abp/Volo.Abp.csproj b/framework/src/Volo.Abp/Volo.Abp.csproj
index 34e624cc84..b127dfc1db 100644
--- a/framework/src/Volo.Abp/Volo.Abp.csproj
+++ b/framework/src/Volo.Abp/Volo.Abp.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Abp
Volo.Abp
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
diff --git a/framework/test/AbpTestBase/AbpTestBase.csproj b/framework/test/AbpTestBase/AbpTestBase.csproj
index 04a5bd0fa7..5079da91df 100644
--- a/framework/test/AbpTestBase/AbpTestBase.csproj
+++ b/framework/test/AbpTestBase/AbpTestBase.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
AbpTestBase
AbpTestBase
diff --git a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj
index 17914d88cd..7d4d822502 100644
--- a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj
+++ b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj
index f92b3e95d2..9710a18bd6 100644
--- a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
latest
Volo.Abp.AspNetCore.Authentication.OAuth.Tests
Volo.Abp.AspNetCore.Authentication.OAuth.Tests
diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj
index 2a946e7d3c..24427e10a2 100644
--- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.AspNetCore.MultiTenancy.Tests
Volo.Abp.AspNetCore.MultiTenancy.Tests
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.PlugIn/Volo.Abp.AspNetCore.Mvc.PlugIn.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.PlugIn/Volo.Abp.AspNetCore.Mvc.PlugIn.csproj
index 6545e9be27..b2cee9ad65 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.PlugIn/Volo.Abp.AspNetCore.Mvc.PlugIn.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.PlugIn/Volo.Abp.AspNetCore.Mvc.PlugIn.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Library
true
true
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj
index ad21822aad..347da6f0bd 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
Volo.Abp.AspNetCore.Mvc.Tests
Volo.Abp.AspNetCore.Mvc.Tests
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Program.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Program.cs
index bc86e47674..48f32590be 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Program.cs
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/Program.cs
@@ -25,9 +25,9 @@ await builder.RunAbpModuleAsync(options =>
if (parentDirectory.Name == "test")
{
#if DEBUG
- plugDllInPath = Path.Combine(parentDirectory.FullName, "Volo.Abp.AspNetCore.Mvc.PlugIn", "bin", "Debug", "net9.0");
+ plugDllInPath = Path.Combine(parentDirectory.FullName, "Volo.Abp.AspNetCore.Mvc.PlugIn", "bin", "Debug", "net10.0");
#else
- plugDllInPath = Path.Combine(parentDirectory.FullName, "Volo.Abp.AspNetCore.Mvc.PlugIn", "bin", "Release", "net9.0");
+ plugDllInPath = Path.Combine(parentDirectory.FullName, "Volo.Abp.AspNetCore.Mvc.PlugIn", "bin", "Release", "net10.0");
#endif
break;
}
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj
index 7a4ff140b6..19dae03734 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
Volo.Abp.AspNetCore.Mvc.UI.Tests
Volo.Abp.AspNetCore.Mvc.UI.Tests
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj
index c2841b0b26..56379f10a3 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj
index 151db7f591..0626fbc0b1 100644
--- a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
Volo.Abp.AspNetCore.Mvc.Versioning.Tests
Volo.Abp.AspNetCore.Mvc.Versioning.Tests
diff --git a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj
index a4b5900e86..cc5f18f77e 100644
--- a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.AspNetCore.Serilog.Tests
Volo.Abp.AspNetCore.Serilog.Tests
diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj
index 7e0a4b4a8e..e47ff0d502 100644
--- a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj
index 85cfcbcff5..da54648998 100644
--- a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj
+++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.AspNetCore.Tests
Volo.Abp.AspNetCore.Tests
true
diff --git a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj
index 802598c0cf..0d076d9014 100644
--- a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj
+++ b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.Auditing.Tests
Volo.Abp.Auditing.Tests
true
diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj
index 5490ddee45..9a7119a6a9 100644
--- a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj
+++ b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.Authorization.Tests
Volo.Abp.Authorization.Tests
true
diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj
index 8dc0fda9df..e34757b095 100644
--- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj
+++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.AutoMapper.Tests
Volo.Abp.AutoMapper.Tests
diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs
index 453ab1d19a..10bc6a9d82 100644
--- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs
+++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs
@@ -1,5 +1,6 @@
using System;
using AutoMapper;
+using Microsoft.Extensions.Logging.Abstractions;
using Shouldly;
using Volo.Abp.Auditing;
using Xunit;
@@ -101,7 +102,7 @@ public class AutoMapperExpressionExtensions_Tests
private static IMapper CreateMapper(Action configure)
{
- var configuration = new MapperConfiguration(configure);
+ var configuration = new MapperConfiguration(configure, NullLoggerFactory.Instance);
configuration.AssertConfigurationIsValid();
return configuration.CreateMapper();
}
diff --git a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj
index 1770ef9c9f..e17ce29209 100644
--- a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj
+++ b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.Autofac.Tests
Volo.Abp.Autofac.Tests
true
diff --git a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj
index 718032877b..ba27daaf88 100644
--- a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj
+++ b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.BackgroundJobs.Tests
Volo.Abp.BackgroundJobs.Tests
diff --git a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj
index 1cbe9ecce0..255e0b4f12 100644
--- a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj
index 5075e404ef..f60b4b34c4 100644
--- a/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj
index dd9766531f..5398b30f33 100644
--- a/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.BlobStoring.Bunny.Tests/Volo.Abp.BlobStoring.Bunny.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Bunny.Tests/Volo.Abp.BlobStoring.Bunny.Tests.csproj
index 408f630fe2..8a758947b1 100644
--- a/framework/test/Volo.Abp.BlobStoring.Bunny.Tests/Volo.Abp.BlobStoring.Bunny.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Bunny.Tests/Volo.Abp.BlobStoring.Bunny.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj
index 50af1926bc..ddecd11444 100644
--- a/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj
index 457ef379c0..2def35beb8 100644
--- a/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Google.Tests/Volo.Abp.BlobStoring.Google.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo.Abp.BlobStoring.Memory.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo.Abp.BlobStoring.Memory.Tests.csproj
new file mode 100644
index 0000000000..9950ceabba
--- /dev/null
+++ b/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo.Abp.BlobStoring.Memory.Tests.csproj
@@ -0,0 +1,18 @@
+
+
+
+
+
+ net10.0
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo/Abp/BlobStoring/Memory/AbpBlobStoringMemoryTestModule.cs b/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo/Abp/BlobStoring/Memory/AbpBlobStoringMemoryTestModule.cs
new file mode 100644
index 0000000000..d7361df8ec
--- /dev/null
+++ b/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo/Abp/BlobStoring/Memory/AbpBlobStoringMemoryTestModule.cs
@@ -0,0 +1,21 @@
+using Volo.Abp.Modularity;
+
+namespace Volo.Abp.BlobStoring.Memory;
+
+[DependsOn(
+ typeof(AbpBlobStoringMemoryModule),
+ typeof(AbpBlobStoringTestModule)
+)]
+public class AbpBlobStoringMemoryTestModule : AbpModule
+{
+ public override void PostConfigureServices(ServiceConfigurationContext context)
+ {
+ Configure(options =>
+ {
+ options.Containers.ConfigureAll((containerName, containerConfiguration) =>
+ {
+ containerConfiguration.UseMemory();
+ });
+ });
+ }
+}
diff --git a/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo/Abp/BlobStoring/Memory/MemoryBlobContainer_Tests.cs b/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo/Abp/BlobStoring/Memory/MemoryBlobContainer_Tests.cs
new file mode 100644
index 0000000000..3f02dc38f3
--- /dev/null
+++ b/framework/test/Volo.Abp.BlobStoring.Memory.Tests/Volo/Abp/BlobStoring/Memory/MemoryBlobContainer_Tests.cs
@@ -0,0 +1,6 @@
+namespace Volo.Abp.BlobStoring.Memory;
+
+public class MemoryBlobContainer_Tests : BlobContainer_Tests
+{
+
+}
diff --git a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj
index 2685fc02d2..96887c44d4 100644
--- a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj
index f452f34036..8a79fa378c 100644
--- a/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj
+++ b/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj b/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj
index b4a6062e45..3f31815501 100644
--- a/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj
+++ b/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj
index f249887f5e..92968be6fd 100644
--- a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj
+++ b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.Caching.Tests
Volo.Abp.Caching.Tests
diff --git a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj
index 0e657614ed..7dada4dc91 100644
--- a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj
+++ b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj
index d5dea43adf..82aa889ead 100644
--- a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj
+++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj
index 81061016a8..941d5cf1da 100644
--- a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj
+++ b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj
index 039a8b870b..734703e392 100644
--- a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj
+++ b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj
index 63bceec44a..7bed89375d 100644
--- a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj
+++ b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj
index d0d73c0212..a25e59b84c 100644
--- a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj
+++ b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.DistributedLocking.Abstractions.Tests/Volo.Abp.DistributedLocking.Abstractions.Tests.csproj b/framework/test/Volo.Abp.DistributedLocking.Abstractions.Tests/Volo.Abp.DistributedLocking.Abstractions.Tests.csproj
index 59d87e6315..002fe095f6 100644
--- a/framework/test/Volo.Abp.DistributedLocking.Abstractions.Tests/Volo.Abp.DistributedLocking.Abstractions.Tests.csproj
+++ b/framework/test/Volo.Abp.DistributedLocking.Abstractions.Tests/Volo.Abp.DistributedLocking.Abstractions.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
true
diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj
index e94aae9cd5..ad679faffa 100644
--- a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj
+++ b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj
index c9fdfffc12..3ab05c5d27 100644
--- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj
+++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
true
true
diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj
index 8e819bbd1c..acbe19a353 100644
--- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj
+++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj
index bd48ba0a4d..b56a799ef2 100644
--- a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj
+++ b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.ExceptionHandling.Tests/Volo.Abp.ExceptionHandling.Tests.csproj b/framework/test/Volo.Abp.ExceptionHandling.Tests/Volo.Abp.ExceptionHandling.Tests.csproj
index 7e05f96701..b621480809 100644
--- a/framework/test/Volo.Abp.ExceptionHandling.Tests/Volo.Abp.ExceptionHandling.Tests.csproj
+++ b/framework/test/Volo.Abp.ExceptionHandling.Tests/Volo.Abp.ExceptionHandling.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj
index 55b773bc91..72b3047bbb 100644
--- a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj
+++ b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj
index 75e1ddc169..cea5566aa5 100644
--- a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj
+++ b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj b/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj
index 43f9fd638f..43d6b9a316 100644
--- a/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj
+++ b/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj b/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj
index ffa03ba7a6..82b2156c67 100644
--- a/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj
+++ b/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj
index 0c0c086083..c10435d9de 100644
--- a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj
+++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj b/framework/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj
index 9ccebb3dbc..461a8b7f8c 100644
--- a/framework/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj
+++ b/framework/test/Volo.Abp.Http.Tests/Volo.Abp.Http.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.IdentityModel.Tests/Volo.Abp.IdentityModel.Tests.csproj b/framework/test/Volo.Abp.IdentityModel.Tests/Volo.Abp.IdentityModel.Tests.csproj
index ddf17d5b46..db127be690 100644
--- a/framework/test/Volo.Abp.IdentityModel.Tests/Volo.Abp.IdentityModel.Tests.csproj
+++ b/framework/test/Volo.Abp.IdentityModel.Tests/Volo.Abp.IdentityModel.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo.Abp.Imaging.Abstractions.Tests.csproj b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo.Abp.Imaging.Abstractions.Tests.csproj
index 302dcbdfaa..767fccfa6e 100644
--- a/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo.Abp.Imaging.Abstractions.Tests.csproj
+++ b/framework/test/Volo.Abp.Imaging.Abstractions.Tests/Volo.Abp.Imaging.Abstractions.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo.Abp.Imaging.AspNetCore.Tests.csproj b/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo.Abp.Imaging.AspNetCore.Tests.csproj
index f7f6093622..370082dd53 100644
--- a/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo.Abp.Imaging.AspNetCore.Tests.csproj
+++ b/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo.Abp.Imaging.AspNetCore.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo/Abp/Imaging/ResizeImageAttribute_Tests.cs b/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo/Abp/Imaging/ResizeImageAttribute_Tests.cs
index ea21306d1d..42ce5e28db 100644
--- a/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo/Abp/Imaging/ResizeImageAttribute_Tests.cs
+++ b/framework/test/Volo.Abp.Imaging.AspNetCore.Tests/Volo/Abp/Imaging/ResizeImageAttribute_Tests.cs
@@ -16,19 +16,19 @@ public class ResizeImageAttribute_Tests : AbpImagingAspNetCoreTestBase
public void Should_Init()
{
var attribute = new ResizeImageAttribute(100, 100);
-
- attribute.Width.ShouldBe(100);
- attribute.Height.ShouldBe(100);
+
+ attribute.Width.ShouldBe(100u);
+ attribute.Height.ShouldBe(100u);
}
-
+
[Fact]
public async Task Should_Resized_IFormFile()
{
var attribute = new ResizeImageAttribute(100, 100);
-
+
var serviceScopeFactory = GetRequiredService();
await using var stream = ImageFileHelper.GetJpgTestFileStream();
-
+
var actionExecutingContext = new ActionExecutingContext(
new ActionContext() {
HttpContext = new DefaultHttpContext() {
@@ -47,14 +47,14 @@ public class ResizeImageAttribute_Tests : AbpImagingAspNetCoreTestBase
},
new object()
);
-
+
await attribute.OnActionExecutionAsync(actionExecutingContext, async () => await Task.FromResult(new ActionExecutedContext(
actionExecutingContext,
new List(),
new object()
)));
-
+
actionExecutingContext.ActionArguments["file"].ShouldNotBeNull();
actionExecutingContext.ActionArguments["file"].ShouldBeAssignableTo();
}
-}
\ No newline at end of file
+}
diff --git a/framework/test/Volo.Abp.Imaging.ImageSharp.Tests/Volo.Abp.Imaging.ImageSharp.Tests.csproj b/framework/test/Volo.Abp.Imaging.ImageSharp.Tests/Volo.Abp.Imaging.ImageSharp.Tests.csproj
index bc7a5c6341..0909a0b439 100644
--- a/framework/test/Volo.Abp.Imaging.ImageSharp.Tests/Volo.Abp.Imaging.ImageSharp.Tests.csproj
+++ b/framework/test/Volo.Abp.Imaging.ImageSharp.Tests/Volo.Abp.Imaging.ImageSharp.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Imaging.MagickNet.Tests/Volo.Abp.Imaging.MagickNet.Tests.csproj b/framework/test/Volo.Abp.Imaging.MagickNet.Tests/Volo.Abp.Imaging.MagickNet.Tests.csproj
index 5229f382af..8475453d4f 100644
--- a/framework/test/Volo.Abp.Imaging.MagickNet.Tests/Volo.Abp.Imaging.MagickNet.Tests.csproj
+++ b/framework/test/Volo.Abp.Imaging.MagickNet.Tests/Volo.Abp.Imaging.MagickNet.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo.Abp.Imaging.SkiaSharp.Tests.csproj b/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo.Abp.Imaging.SkiaSharp.Tests.csproj
index 5d0b2d1bc6..d848f26d56 100644
--- a/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo.Abp.Imaging.SkiaSharp.Tests.csproj
+++ b/framework/test/Volo.Abp.Imaging.SkiaSharp.Tests/Volo.Abp.Imaging.SkiaSharp.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Json.Tests/Volo.Abp.Json.Tests.csproj b/framework/test/Volo.Abp.Json.Tests/Volo.Abp.Json.Tests.csproj
index 458deff71c..6fd25b256e 100644
--- a/framework/test/Volo.Abp.Json.Tests/Volo.Abp.Json.Tests.csproj
+++ b/framework/test/Volo.Abp.Json.Tests/Volo.Abp.Json.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj
index a4ccb3b226..44a347d932 100644
--- a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj
+++ b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj
index a51d355555..9fdec44c92 100644
--- a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj
+++ b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj
index a9270400ee..42fecfe817 100644
--- a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj
+++ b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Mapperly.Tests/Volo.Abp.Mapperly.Tests.csproj b/framework/test/Volo.Abp.Mapperly.Tests/Volo.Abp.Mapperly.Tests.csproj
index 2ea799a4c9..0708117ca2 100644
--- a/framework/test/Volo.Abp.Mapperly.Tests/Volo.Abp.Mapperly.Tests.csproj
+++ b/framework/test/Volo.Abp.Mapperly.Tests/Volo.Abp.Mapperly.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Volo.Abp.Mapperly.Tests
Volo.Abp.Mapperly.Tests
diff --git a/framework/test/Volo.Abp.Mapperly.Tests/Volo/Abp/Mapperly/AbpMapperlyModule_Basic_Tests.cs b/framework/test/Volo.Abp.Mapperly.Tests/Volo/Abp/Mapperly/AbpMapperlyModule_Basic_Tests.cs
index b5987769be..bd543f4fe4 100644
--- a/framework/test/Volo.Abp.Mapperly.Tests/Volo/Abp/Mapperly/AbpMapperlyModule_Basic_Tests.cs
+++ b/framework/test/Volo.Abp.Mapperly.Tests/Volo/Abp/Mapperly/AbpMapperlyModule_Basic_Tests.cs
@@ -106,14 +106,27 @@ public class AbpMapperlyModule_Basic_Tests : AbpIntegratedTest(() =>_objectMapper.Map(new MyEntity()));
- exception.Message.ShouldBe("No object mapping was found for the specified source and destination types.\n\n" +
- "Mapping attempted:\n" +
- "MyEntity -> MyClassDto\n" +
- "Volo.Abp.Mapperly.SampleClasses.MyEntity -> Volo.Abp.Mapperly.MyClassDto\n\n" +
- "How to fix:\n" +
- "Define a mapping class for these types:" + "\n" +
- " - Use MapperBase for one-way mapping.\n" +
- " - Use TwoWayMapperBase for two-way mapping.\n\n" +
- "For details, see the Mapperly integration document https://abp.io/docs/latest/framework/infrastructure/object-to-object-mapping#mapperly-integration");
+ var newLine = Environment.NewLine;
+ var message = "No object mapping was found for the specified source and destination types." +
+ newLine +
+ newLine +
+ "Mapping attempted:" +
+ newLine +
+ $"{typeof(MyEntity).Name} -> {typeof(MyClassDto).Name}" +
+ newLine +
+ $"{typeof(MyEntity).FullName} -> {typeof(MyClassDto).FullName}" +
+ newLine +
+ newLine +
+ "How to fix:" +
+ newLine +
+ "Define a mapping class for these types:" +
+ newLine +
+ " - Use MapperBase for one-way mapping." +
+ newLine +
+ " - Use TwoWayMapperBase for two-way mapping." +
+ newLine +
+ newLine +
+ "For details, see the Mapperly integration document https://abp.io/docs/latest/framework/infrastructure/object-to-object-mapping#mapperly-integration";
+ exception.Message.ShouldBe(message);
}
}
diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj
index f8d2feb9b0..f34c210cfb 100644
--- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj
+++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj
index 646ba5c75c..663a65d679 100644
--- a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj
+++ b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.MongoDB.Tests.SecondContext/Volo.Abp.MongoDB.Tests.SecondContext.csproj b/framework/test/Volo.Abp.MongoDB.Tests.SecondContext/Volo.Abp.MongoDB.Tests.SecondContext.csproj
index cd769f6f2e..a25b61b983 100644
--- a/framework/test/Volo.Abp.MongoDB.Tests.SecondContext/Volo.Abp.MongoDB.Tests.SecondContext.csproj
+++ b/framework/test/Volo.Abp.MongoDB.Tests.SecondContext/Volo.Abp.MongoDB.Tests.SecondContext.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
true
true
diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj
index 524533f890..01aaa0017c 100644
--- a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj
+++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/MongoDB_DateTimeKind_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/MongoDB_DateTimeKind_Tests.cs
index 6c1718f9a1..272b306416 100644
--- a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/MongoDB_DateTimeKind_Tests.cs
+++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/MongoDB_DateTimeKind_Tests.cs
@@ -1,9 +1,6 @@
using System;
-using System.Reflection;
using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
-using MongoDB.Bson.Serialization;
-using MongoDB.Bson.Serialization.Serializers;
using Shouldly;
using Volo.Abp.TestApp.Domain;
using Volo.Abp.TestApp.Testing;
@@ -12,41 +9,16 @@ using Xunit;
namespace Volo.Abp.MongoDB.Serializer;
-[Collection(MongoTestCollection.Name)]
+
public abstract class MongoDB_DateTimeKind_Tests : DateTimeKind_Tests
{
- protected override void AfterAddApplication(IServiceCollection services)
+ protected override void AfterInitialize()
{
- // MongoDB uses static properties to store the mapping information,
- // We must reconfigure it in the new unit test.
- foreach (var registeredClassMap in BsonClassMap.GetRegisteredClassMaps())
- {
- foreach (var declaredMemberMap in registeredClassMap.DeclaredMemberMaps)
- {
- var serializer = declaredMemberMap.GetSerializer();
- switch (serializer)
- {
- case AbpMongoDbDateTimeSerializer dateTimeSerializer:
- dateTimeSerializer.SetDateTimeKind(Kind);
- break;
- case NullableSerializer nullableSerializer:
- {
- var lazySerializer = nullableSerializer.GetType()
- ?.GetField("_lazySerializer", BindingFlags.NonPublic | BindingFlags.Instance)
- ?.GetValue(serializer)?.As>>();
-
- if (lazySerializer?.Value is AbpMongoDbDateTimeSerializer dateTimeSerializer)
- {
- dateTimeSerializer.SetDateTimeKind(Kind);
- }
- break;
- }
- }
- }
- }
+ UnitTestSerializerHelper.FixSerializers(Kind);
}
}
+[Collection(MongoTestCollection.Name)]
public class DateTimeKindTests_Unspecified : MongoDB_DateTimeKind_Tests
{
protected override void AfterAddApplication(IServiceCollection services)
@@ -89,6 +61,11 @@ public class DisableDateTimeKindTests : TestAppTestBase
PersonRepository = GetRequiredService();
}
+ protected override void AfterInitialize()
+ {
+ UnitTestSerializerHelper.FixSerializers(null);
+ }
+
protected override void AfterAddApplication(IServiceCollection services)
{
services.Configure(x => x.UseAbpClockHandleDateTime = false);
diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/UnitTestSerializerHelper.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/UnitTestSerializerHelper.cs
new file mode 100644
index 0000000000..3fa04cbe23
--- /dev/null
+++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Serializer/UnitTestSerializerHelper.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Linq;
+using System.Reflection;
+using MongoDB.Bson.Serialization;
+using MongoDB.Bson.Serialization.Serializers;
+using Volo.Abp.Timing;
+
+namespace Volo.Abp.MongoDB.Serializer;
+
+// MongoDB uses static properties to store the mapping information,
+// We must reconfigure it in the new unit test.
+public static class UnitTestSerializerHelper
+{
+ public static void FixSerializers(DateTimeKind? kind)
+ {
+ foreach (var registeredClassMap in BsonClassMap.GetRegisteredClassMaps())
+ {
+ foreach (var declaredMemberMap in registeredClassMap.DeclaredMemberMaps.Where(x => x.MemberType == typeof(DateTime) || x.MemberType == typeof(DateTime?)))
+ {
+ IBsonSerializer serializer = null;
+ if (kind != null)
+ {
+ serializer = !declaredMemberMap.MemberInfo.IsDefined(typeof(DisableDateTimeNormalizationAttribute), true)
+ ? declaredMemberMap.MemberType == typeof(DateTime?) ? new NullableSerializer().WithSerializer(new AbpMongoDbDateTimeSerializer(kind.Value, false))
+ : new AbpMongoDbDateTimeSerializer(kind.Value, false)
+ : declaredMemberMap.MemberType == typeof(DateTime?) ? new NullableSerializer().WithSerializer(new DateTimeSerializer(DateTimeKind.Unspecified))
+ : new DateTimeSerializer(DateTimeKind.Unspecified);
+ }
+
+ var fieldInfo = declaredMemberMap.GetType().GetField("_serializer", BindingFlags.NonPublic | BindingFlags.Instance);
+ fieldInfo?.SetValue(declaredMemberMap, serializer);
+ }
+ }
+ }
+}
diff --git a/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj
index 656113d1c5..663e009cf0 100644
--- a/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj
+++ b/framework/test/Volo.Abp.MultiLingualObjects.Tests/Volo.Abp.MultiLingualObjects.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
enable
diff --git a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj
index 0ca67847dd..b4b4b9641b 100644
--- a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj
+++ b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj b/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj
index f5793043c3..c77e4ab7e1 100644
--- a/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj
+++ b/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj
index ca98151b9e..3eddf5ed1b 100644
--- a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj
+++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.RemoteServices.Tests/Volo.Abp.RemoteServices.Tests.csproj b/framework/test/Volo.Abp.RemoteServices.Tests/Volo.Abp.RemoteServices.Tests.csproj
index d13d1545bf..8ea1a2c4f6 100644
--- a/framework/test/Volo.Abp.RemoteServices.Tests/Volo.Abp.RemoteServices.Tests.csproj
+++ b/framework/test/Volo.Abp.RemoteServices.Tests/Volo.Abp.RemoteServices.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj
index 8faa9d22ef..25a8592314 100644
--- a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj
+++ b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj
index 34da8cb6d0..cde6aaeae2 100644
--- a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj
+++ b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj
index 83045d9b1d..01395fb9a9 100644
--- a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj
+++ b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj b/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj
index 9382d8f925..34bde20c9b 100644
--- a/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj
+++ b/framework/test/Volo.Abp.Sms.Aliyun.Tests/Volo.Abp.Sms.Aliyun.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
9f0d2c00-80c1-435b-bfab-2c39c8249091
diff --git a/framework/test/Volo.Abp.Sms.TencenCloud.Tests/Volo.Abp.Sms.TencentCloud.Tests.csproj b/framework/test/Volo.Abp.Sms.TencenCloud.Tests/Volo.Abp.Sms.TencentCloud.Tests.csproj
index cd63f915d1..8ffbf02285 100644
--- a/framework/test/Volo.Abp.Sms.TencenCloud.Tests/Volo.Abp.Sms.TencentCloud.Tests.csproj
+++ b/framework/test/Volo.Abp.Sms.TencenCloud.Tests/Volo.Abp.Sms.TencentCloud.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj
index 87728d2c93..c061c1ee46 100644
--- a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj
+++ b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj
index d39e1a441b..6a1f4de2fd 100644
--- a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj
+++ b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj
index c70e5e5f99..ae0b3923a3 100644
--- a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj
+++ b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
true
diff --git a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo.Abp.TextTemplating.Razor.Tests.csproj b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo.Abp.TextTemplating.Razor.Tests.csproj
index 1818c632af..ba96267db1 100644
--- a/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo.Abp.TextTemplating.Razor.Tests.csproj
+++ b/framework/test/Volo.Abp.TextTemplating.Razor.Tests/Volo.Abp.TextTemplating.Razor.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo.Abp.TextTemplating.Scriban.Tests.csproj b/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo.Abp.TextTemplating.Scriban.Tests.csproj
index 6865f367f3..3fe043b39c 100644
--- a/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo.Abp.TextTemplating.Scriban.Tests.csproj
+++ b/framework/test/Volo.Abp.TextTemplating.Scriban.Tests/Volo.Abp.TextTemplating.Scriban.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj b/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj
index 1c2efdfd4e..6bb10aff0e 100644
--- a/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj
+++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Threading.Tests/Volo.Abp.Threading.Tests.csproj b/framework/test/Volo.Abp.Threading.Tests/Volo.Abp.Threading.Tests.csproj
index 63248e811e..569bfcf5f1 100644
--- a/framework/test/Volo.Abp.Threading.Tests/Volo.Abp.Threading.Tests.csproj
+++ b/framework/test/Volo.Abp.Threading.Tests/Volo.Abp.Threading.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Timing.Tests/Volo.Abp.Timing.Tests.csproj b/framework/test/Volo.Abp.Timing.Tests/Volo.Abp.Timing.Tests.csproj
index 58bc261247..fcd7ba3c02 100644
--- a/framework/test/Volo.Abp.Timing.Tests/Volo.Abp.Timing.Tests.csproj
+++ b/framework/test/Volo.Abp.Timing.Tests/Volo.Abp.Timing.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj
index 4f4a48039d..80b64d4f9c 100644
--- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj
+++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj
index 61344699f2..52307aa1ee 100644
--- a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj
+++ b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj
index 1969b6b6ce..423eb97b2a 100644
--- a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj
+++ b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj
index 9217473910..0dc39d64cb 100644
--- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj
+++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
true
diff --git a/global.json b/global.json
index cdbb589eda..dfba20f63f 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"sdk": {
- "version": "9.0.100",
+ "version": "10.0.100-rc.1.25451.107",
"rollForward": "latestFeature"
}
}
diff --git a/latest-versions.json b/latest-versions.json
index c09373e176..7b3e4c5e79 100644
--- a/latest-versions.json
+++ b/latest-versions.json
@@ -1,4 +1,13 @@
[
+ {
+ "version": "9.3.4",
+ "releaseDate": "",
+ "type": "stable",
+ "message": "",
+ "leptonx": {
+ "version": "4.3.4"
+ }
+ },
{
"version": "9.3.3",
"releaseDate": "",
diff --git a/modules/account/Volo.Abp.Account.sln b/modules/account/Volo.Abp.Account.sln
deleted file mode 100644
index 3fe56c6f53..0000000000
--- a/modules/account/Volo.Abp.Account.sln
+++ /dev/null
@@ -1,95 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29001.49
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5881429-EFF7-4F30-8C0B-0AC41E36B74E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Account.Web", "src\Volo.Abp.Account.Web\Volo.Abp.Account.Web.csproj", "{FCAC4354-7B13-4A91-A2F4-04D00F253C91}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Account.Web.IdentityServer", "src\Volo.Abp.Account.Web.IdentityServer\Volo.Abp.Account.Web.IdentityServer.csproj", "{841C216F-B0E9-472C-BC19-2C31ADF0664F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Application", "src\Volo.Abp.Account.Application\Volo.Abp.Account.Application.csproj", "{17251488-053D-42BA-B430-2428082E3D9E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Application.Contracts", "src\Volo.Abp.Account.Application.Contracts\Volo.Abp.Account.Application.Contracts.csproj", "{715B4DE5-47B4-4C99-A53A-D10FBBE7F48B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.HttpApi", "src\Volo.Abp.Account.HttpApi\Volo.Abp.Account.HttpApi.csproj", "{EBF0C2B3-14CB-4DFC-9753-ECBF959CBA2E}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.HttpApi.Client", "src\Volo.Abp.Account.HttpApi.Client\Volo.Abp.Account.HttpApi.Client.csproj", "{7BCA5955-B3F6-41E8-9D5D-D115195C6098}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{12FAE513-7575-4235-89DF-277BA1A3B098}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Application.Tests", "test\Volo.Abp.Account.Application.Tests\Volo.Abp.Account.Application.Tests.csproj", "{356EAC51-5D55-4852-A8A5-2F90EAC8DAE3}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Blazor", "src\Volo.Abp.Account.Blazor\Volo.Abp.Account.Blazor.csproj", "{EE8858B3-A638-481B-8EB9-74F5E7D43D80}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Installer", "src\Volo.Abp.Account.Installer\Volo.Abp.Account.Installer.csproj", "{EAAB416C-9113-486D-9B54-4DCF78FDC6AB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Account.Web.OpenIddict", "src\Volo.Abp.Account.Web.OpenIddict\Volo.Abp.Account.Web.OpenIddict.csproj", "{53DA9051-4C76-4264-A1E1-2810DC685CB2}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {FCAC4354-7B13-4A91-A2F4-04D00F253C91}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FCAC4354-7B13-4A91-A2F4-04D00F253C91}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FCAC4354-7B13-4A91-A2F4-04D00F253C91}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FCAC4354-7B13-4A91-A2F4-04D00F253C91}.Release|Any CPU.Build.0 = Release|Any CPU
- {841C216F-B0E9-472C-BC19-2C31ADF0664F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {841C216F-B0E9-472C-BC19-2C31ADF0664F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {841C216F-B0E9-472C-BC19-2C31ADF0664F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {841C216F-B0E9-472C-BC19-2C31ADF0664F}.Release|Any CPU.Build.0 = Release|Any CPU
- {17251488-053D-42BA-B430-2428082E3D9E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {17251488-053D-42BA-B430-2428082E3D9E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {17251488-053D-42BA-B430-2428082E3D9E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {17251488-053D-42BA-B430-2428082E3D9E}.Release|Any CPU.Build.0 = Release|Any CPU
- {715B4DE5-47B4-4C99-A53A-D10FBBE7F48B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {715B4DE5-47B4-4C99-A53A-D10FBBE7F48B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {715B4DE5-47B4-4C99-A53A-D10FBBE7F48B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {715B4DE5-47B4-4C99-A53A-D10FBBE7F48B}.Release|Any CPU.Build.0 = Release|Any CPU
- {EBF0C2B3-14CB-4DFC-9753-ECBF959CBA2E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EBF0C2B3-14CB-4DFC-9753-ECBF959CBA2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EBF0C2B3-14CB-4DFC-9753-ECBF959CBA2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EBF0C2B3-14CB-4DFC-9753-ECBF959CBA2E}.Release|Any CPU.Build.0 = Release|Any CPU
- {7BCA5955-B3F6-41E8-9D5D-D115195C6098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7BCA5955-B3F6-41E8-9D5D-D115195C6098}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7BCA5955-B3F6-41E8-9D5D-D115195C6098}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7BCA5955-B3F6-41E8-9D5D-D115195C6098}.Release|Any CPU.Build.0 = Release|Any CPU
- {356EAC51-5D55-4852-A8A5-2F90EAC8DAE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {356EAC51-5D55-4852-A8A5-2F90EAC8DAE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {356EAC51-5D55-4852-A8A5-2F90EAC8DAE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {356EAC51-5D55-4852-A8A5-2F90EAC8DAE3}.Release|Any CPU.Build.0 = Release|Any CPU
- {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EE8858B3-A638-481B-8EB9-74F5E7D43D80}.Release|Any CPU.Build.0 = Release|Any CPU
- {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EAAB416C-9113-486D-9B54-4DCF78FDC6AB}.Release|Any CPU.Build.0 = Release|Any CPU
- {53DA9051-4C76-4264-A1E1-2810DC685CB2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {53DA9051-4C76-4264-A1E1-2810DC685CB2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {53DA9051-4C76-4264-A1E1-2810DC685CB2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {53DA9051-4C76-4264-A1E1-2810DC685CB2}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {FCAC4354-7B13-4A91-A2F4-04D00F253C91} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {841C216F-B0E9-472C-BC19-2C31ADF0664F} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {17251488-053D-42BA-B430-2428082E3D9E} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {715B4DE5-47B4-4C99-A53A-D10FBBE7F48B} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {EBF0C2B3-14CB-4DFC-9753-ECBF959CBA2E} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {7BCA5955-B3F6-41E8-9D5D-D115195C6098} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {356EAC51-5D55-4852-A8A5-2F90EAC8DAE3} = {12FAE513-7575-4235-89DF-277BA1A3B098}
- {EE8858B3-A638-481B-8EB9-74F5E7D43D80} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {EAAB416C-9113-486D-9B54-4DCF78FDC6AB} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- {53DA9051-4C76-4264-A1E1-2810DC685CB2} = {B5881429-EFF7-4F30-8C0B-0AC41E36B74E}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {2B054393-D2B2-4EA8-8A15-D60CBCF3E7A9}
- EndGlobalSection
-EndGlobal
diff --git a/modules/account/Volo.Abp.Account.slnx b/modules/account/Volo.Abp.Account.slnx
new file mode 100644
index 0000000000..031e142df9
--- /dev/null
+++ b/modules/account/Volo.Abp.Account.slnx
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj
index f8275b0e45..477bb63bf4 100644
--- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj
+++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Abp.Account.Application.Contracts
Volo.Abp.Account.Application.Contracts
true
diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj
index b4530a5dd7..0046c63637 100644
--- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj
+++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.Account.Application
Volo.Abp.Account.Application
true
diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj
index 7590216d06..c86f70c5ae 100644
--- a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj
+++ b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.Account.Blazor
diff --git a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj
index 7b808a3da9..c19963867e 100644
--- a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj
+++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Abp.Account.HttpApi.Client
Volo.Abp.Account.HttpApi.Client
diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj
index fe90e00d1c..a23e01866b 100644
--- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj
+++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.Account.HttpApi
Volo.Abp.Account.HttpApi
diff --git a/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj b/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj
index 8ae730d20c..1b5f111bf9 100644
--- a/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj
+++ b/modules/account/src/Volo.Abp.Account.Installer/Volo.Abp.Account.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj
index 6abd877a2c..c9a7915447 100644
--- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj
+++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.Account.Web.IdentityServer
Volo.Abp.Account.Web.IdentityServer
true
diff --git a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj
index 3346a628e1..51817191d7 100644
--- a/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj
+++ b/modules/account/src/Volo.Abp.Account.Web.OpenIddict/Volo.Abp.Account.Web.OpenIddict.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.Account.Web.OpenIddict
Volo.Abp.Account.Web.OpenIddict
true
diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
index f246beed84..fe26b36fd9 100644
--- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
+++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
@@ -36,7 +36,11 @@ public class AbpAccountWebModule : AbpModule
{
context.Services.PreConfigure(options =>
{
- options.AddAssemblyResource(typeof(AccountResource), typeof(AbpAccountWebModule).Assembly);
+ options.AddAssemblyResource(
+ typeof(AccountResource),
+ typeof(AbpAccountWebModule).Assembly,
+ typeof(AbpAccountApplicationContractsModule).Assembly
+ );
});
PreConfigure(mvcBuilder =>
diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj
index 3f52eae0a4..35f0d57960 100644
--- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj
+++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.Account.Web
Volo.Abp.Account.Web
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj
index 218c21ea2e..cdfd30470e 100644
--- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj
+++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/modules/audit-logging/Volo.Abp.AuditLogging.sln b/modules/audit-logging/Volo.Abp.AuditLogging.sln
deleted file mode 100644
index 02c68f1ee4..0000000000
--- a/modules/audit-logging/Volo.Abp.AuditLogging.sln
+++ /dev/null
@@ -1,88 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.27703.2035
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.Domain.Shared", "src\Volo.Abp.AuditLogging.Domain.Shared\Volo.Abp.AuditLogging.Domain.Shared.csproj", "{6BFAB2F3-230A-45C2-8C94-4955CE3FF93E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.Domain", "src\Volo.Abp.AuditLogging.Domain\Volo.Abp.AuditLogging.Domain.csproj", "{1878DA13-BFA0-4EEA-A268-272DC1C34B43}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.EntityFrameworkCore", "src\Volo.Abp.AuditLogging.EntityFrameworkCore\Volo.Abp.AuditLogging.EntityFrameworkCore.csproj", "{E1B915D0-7F7B-4F92-B8D5-6C7DECE75E45}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.MongoDB", "src\Volo.Abp.AuditLogging.MongoDB\Volo.Abp.AuditLogging.MongoDB.csproj", "{FA5154D2-26B2-4DBC-8A12-536A7323F3CD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CFAB155F-5255-4D99-94E2-3361D8EA4B15}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{971E31E2-FC37-41D3-8B6E-96848105C446}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.Tests", "test\Volo.Abp.AuditLogging.Tests\Volo.Abp.AuditLogging.Tests.csproj", "{9946C645-1234-49D9-98C1-152311FBBAB5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.TestBase", "test\Volo.Abp.AuditLogging.TestBase\Volo.Abp.AuditLogging.TestBase.csproj", "{6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AuditLogging.EntityFrameworkCore.Tests", "test\Volo.Abp.AuditLogging.EntityFrameworkCore.Tests\Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj", "{CBED3E11-0A33-4B56-A75C-A57D25C98C38}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AuditLogging.MongoDB.Tests", "test\Volo.Abp.AuditLogging.MongoDB.Tests\Volo.Abp.AuditLogging.MongoDB.Tests.csproj", "{9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AuditLogging.Installer", "src\Volo.Abp.AuditLogging.Installer\Volo.Abp.AuditLogging.Installer.csproj", "{E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {6BFAB2F3-230A-45C2-8C94-4955CE3FF93E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6BFAB2F3-230A-45C2-8C94-4955CE3FF93E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6BFAB2F3-230A-45C2-8C94-4955CE3FF93E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6BFAB2F3-230A-45C2-8C94-4955CE3FF93E}.Release|Any CPU.Build.0 = Release|Any CPU
- {1878DA13-BFA0-4EEA-A268-272DC1C34B43}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1878DA13-BFA0-4EEA-A268-272DC1C34B43}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1878DA13-BFA0-4EEA-A268-272DC1C34B43}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1878DA13-BFA0-4EEA-A268-272DC1C34B43}.Release|Any CPU.Build.0 = Release|Any CPU
- {E1B915D0-7F7B-4F92-B8D5-6C7DECE75E45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E1B915D0-7F7B-4F92-B8D5-6C7DECE75E45}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E1B915D0-7F7B-4F92-B8D5-6C7DECE75E45}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E1B915D0-7F7B-4F92-B8D5-6C7DECE75E45}.Release|Any CPU.Build.0 = Release|Any CPU
- {FA5154D2-26B2-4DBC-8A12-536A7323F3CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FA5154D2-26B2-4DBC-8A12-536A7323F3CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FA5154D2-26B2-4DBC-8A12-536A7323F3CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FA5154D2-26B2-4DBC-8A12-536A7323F3CD}.Release|Any CPU.Build.0 = Release|Any CPU
- {9946C645-1234-49D9-98C1-152311FBBAB5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9946C645-1234-49D9-98C1-152311FBBAB5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9946C645-1234-49D9-98C1-152311FBBAB5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9946C645-1234-49D9-98C1-152311FBBAB5}.Release|Any CPU.Build.0 = Release|Any CPU
- {6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83}.Release|Any CPU.Build.0 = Release|Any CPU
- {CBED3E11-0A33-4B56-A75C-A57D25C98C38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CBED3E11-0A33-4B56-A75C-A57D25C98C38}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CBED3E11-0A33-4B56-A75C-A57D25C98C38}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CBED3E11-0A33-4B56-A75C-A57D25C98C38}.Release|Any CPU.Build.0 = Release|Any CPU
- {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F}.Release|Any CPU.Build.0 = Release|Any CPU
- {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {6BFAB2F3-230A-45C2-8C94-4955CE3FF93E} = {CFAB155F-5255-4D99-94E2-3361D8EA4B15}
- {1878DA13-BFA0-4EEA-A268-272DC1C34B43} = {CFAB155F-5255-4D99-94E2-3361D8EA4B15}
- {E1B915D0-7F7B-4F92-B8D5-6C7DECE75E45} = {CFAB155F-5255-4D99-94E2-3361D8EA4B15}
- {FA5154D2-26B2-4DBC-8A12-536A7323F3CD} = {CFAB155F-5255-4D99-94E2-3361D8EA4B15}
- {9946C645-1234-49D9-98C1-152311FBBAB5} = {971E31E2-FC37-41D3-8B6E-96848105C446}
- {6CDB588F-B5FD-4F2A-9599-49ACE2D7AF83} = {971E31E2-FC37-41D3-8B6E-96848105C446}
- {CBED3E11-0A33-4B56-A75C-A57D25C98C38} = {971E31E2-FC37-41D3-8B6E-96848105C446}
- {9F04C908-F4B9-45B4-BB9A-26A1462D4D7F} = {971E31E2-FC37-41D3-8B6E-96848105C446}
- {E5F8A2AD-7D8D-4F9E-B606-737784DC90BA} = {CFAB155F-5255-4D99-94E2-3361D8EA4B15}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {9F36BAE5-A9CF-460C-8E7E-4580347F71F6}
- EndGlobalSection
-EndGlobal
diff --git a/modules/audit-logging/Volo.Abp.AuditLogging.slnx b/modules/audit-logging/Volo.Abp.AuditLogging.slnx
new file mode 100644
index 0000000000..9b35c156b5
--- /dev/null
+++ b/modules/audit-logging/Volo.Abp.AuditLogging.slnx
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj
index f8c35b3f49..3c3a7f8f06 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
true
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj
index a93e5f5823..336a274d89 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj
index 6117d5ac5e..eeafcf35d8 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj
index 717a214655..1dca5f910e 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Installer/Volo.Abp.AuditLogging.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj
index 652bd943a5..d397a54821 100644
--- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj
+++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj
index 99ad35711f..eabd7f2b38 100644
--- a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj
+++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj
index 1b9925261b..ad50af2f64 100644
--- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj
+++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj
index 26af9d72a2..137cc6bf67 100644
--- a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj
+++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj
index 08d9788bb7..18e114f790 100644
--- a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj
+++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/Volo.Abp.BackgroundJobs.sln b/modules/background-jobs/Volo.Abp.BackgroundJobs.sln
deleted file mode 100644
index 2b2d8620a6..0000000000
--- a/modules/background-jobs/Volo.Abp.BackgroundJobs.sln
+++ /dev/null
@@ -1,125 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29519.87
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.Domain.Shared", "src\Volo.Abp.BackgroundJobs.Domain.Shared\Volo.Abp.BackgroundJobs.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.Domain", "src\Volo.Abp.BackgroundJobs.Domain\Volo.Abp.BackgroundJobs.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{E400416D-2895-4512-9D17-90681EEC7E0A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.EntityFrameworkCore", "src\Volo.Abp.BackgroundJobs.EntityFrameworkCore\Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.MongoDB", "src\Volo.Abp.BackgroundJobs.MongoDB\Volo.Abp.BackgroundJobs.MongoDB.csproj", "{F1C58097-4C08-4D88-8976-6B3389391481}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.TestBase", "test\Volo.Abp.BackgroundJobs.TestBase\Volo.Abp.BackgroundJobs.TestBase.csproj", "{6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.Domain.Tests", "test\Volo.Abp.BackgroundJobs.Domain.Tests\Volo.Abp.BackgroundJobs.Domain.Tests.csproj", "{44FB6636-5427-415D-8883-CB7E42D548F2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests", "test\Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests\Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj", "{E5906DE1-B2F5-472E-BE1B-1D96A68B834D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.MongoDB.Tests", "test\Volo.Abp.BackgroundJobs.MongoDB.Tests\Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj", "{AA783A34-86E4-41A5-AE21-5D9FBD98D858}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.DemoApp", "app\Volo.Abp.BackgroundJobs.DemoApp\Volo.Abp.BackgroundJobs.DemoApp.csproj", "{9A871D66-BE8D-440C-BF79-F778F8A50BF3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.DemoApp.Shared", "app\Volo.Abp.BackgroundJobs.DemoApp.Shared\Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj", "{DE6914FF-F60A-461A-8498-461198E917BE}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.DemoApp.HangFire", "app\Volo.Abp.BackgroundJobs.DemoApp.HangFire\Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj", "{2060AC85-2598-4342-A87C-A684A2C71A37}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BackgroundJobs.DemoApp.RabbitMq", "app\Volo.Abp.BackgroundJobs.DemoApp.RabbitMq\Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj", "{7C8D03F7-165E-478C-A6D6-DC8229EEABB9}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BackgroundJobs.DemoApp.Quartz", "app\Volo.Abp.BackgroundJobs.DemoApp.Quartz\Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj", "{0146891D-3FF8-4516-94D6-B9EFC37383CD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BackgroundJobs.Installer", "src\Volo.Abp.BackgroundJobs.Installer\Volo.Abp.BackgroundJobs.Installer.csproj", "{FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.Build.0 = Release|Any CPU
- {6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6E5B22E7-E2DB-45D4-B828-8019D8FD51E8}.Release|Any CPU.Build.0 = Release|Any CPU
- {44FB6636-5427-415D-8883-CB7E42D548F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {44FB6636-5427-415D-8883-CB7E42D548F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {44FB6636-5427-415D-8883-CB7E42D548F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {44FB6636-5427-415D-8883-CB7E42D548F2}.Release|Any CPU.Build.0 = Release|Any CPU
- {E5906DE1-B2F5-472E-BE1B-1D96A68B834D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E5906DE1-B2F5-472E-BE1B-1D96A68B834D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E5906DE1-B2F5-472E-BE1B-1D96A68B834D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E5906DE1-B2F5-472E-BE1B-1D96A68B834D}.Release|Any CPU.Build.0 = Release|Any CPU
- {AA783A34-86E4-41A5-AE21-5D9FBD98D858}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AA783A34-86E4-41A5-AE21-5D9FBD98D858}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AA783A34-86E4-41A5-AE21-5D9FBD98D858}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AA783A34-86E4-41A5-AE21-5D9FBD98D858}.Release|Any CPU.Build.0 = Release|Any CPU
- {9A871D66-BE8D-440C-BF79-F778F8A50BF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9A871D66-BE8D-440C-BF79-F778F8A50BF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9A871D66-BE8D-440C-BF79-F778F8A50BF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9A871D66-BE8D-440C-BF79-F778F8A50BF3}.Release|Any CPU.Build.0 = Release|Any CPU
- {DE6914FF-F60A-461A-8498-461198E917BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DE6914FF-F60A-461A-8498-461198E917BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DE6914FF-F60A-461A-8498-461198E917BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DE6914FF-F60A-461A-8498-461198E917BE}.Release|Any CPU.Build.0 = Release|Any CPU
- {2060AC85-2598-4342-A87C-A684A2C71A37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2060AC85-2598-4342-A87C-A684A2C71A37}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2060AC85-2598-4342-A87C-A684A2C71A37}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2060AC85-2598-4342-A87C-A684A2C71A37}.Release|Any CPU.Build.0 = Release|Any CPU
- {7C8D03F7-165E-478C-A6D6-DC8229EEABB9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7C8D03F7-165E-478C-A6D6-DC8229EEABB9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7C8D03F7-165E-478C-A6D6-DC8229EEABB9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7C8D03F7-165E-478C-A6D6-DC8229EEABB9}.Release|Any CPU.Build.0 = Release|Any CPU
- {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0146891D-3FF8-4516-94D6-B9EFC37383CD}.Release|Any CPU.Build.0 = Release|Any CPU
- {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {F1C58097-4C08-4D88-8976-6B3389391481} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {6E5B22E7-E2DB-45D4-B828-8019D8FD51E8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {44FB6636-5427-415D-8883-CB7E42D548F2} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {E5906DE1-B2F5-472E-BE1B-1D96A68B834D} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {AA783A34-86E4-41A5-AE21-5D9FBD98D858} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {9A871D66-BE8D-440C-BF79-F778F8A50BF3} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {DE6914FF-F60A-461A-8498-461198E917BE} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {2060AC85-2598-4342-A87C-A684A2C71A37} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {7C8D03F7-165E-478C-A6D6-DC8229EEABB9} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {0146891D-3FF8-4516-94D6-B9EFC37383CD} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {FCD1EFC7-28D6-40F5-8C9A-7DE0328D6758} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD}
- EndGlobalSection
-EndGlobal
diff --git a/modules/background-jobs/Volo.Abp.BackgroundJobs.slnx b/modules/background-jobs/Volo.Abp.BackgroundJobs.slnx
new file mode 100644
index 0000000000..d8a41ccb9d
--- /dev/null
+++ b/modules/background-jobs/Volo.Abp.BackgroundJobs.slnx
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj
index 2236da5c2b..3d145c93ef 100644
--- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj
+++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj
index b646707e44..8faef0c291 100644
--- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj
+++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj
index 5b3cb4a375..cc77f67dd0 100644
--- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj
+++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj
index 3ba0c6b8d5..edc565f591 100644
--- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj
+++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj
@@ -3,7 +3,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj
index 4e377ce512..f6a170daff 100644
--- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj
+++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj
index e68943924a..2a491b41b7 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj
index 2a35994fe6..b18fcaf03b 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj
index 87455326b3..e6122c30d9 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj
index 345066fac6..bd1f45cd66 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Installer/Volo.Abp.BackgroundJobs.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj
index 46306dbda5..a40ebefa88 100644
--- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj
+++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj
index 688801eb12..d1075eef8f 100644
--- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj
+++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj
index df7b4203b6..671de5851c 100644
--- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj
+++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj
index a1a1a47d2c..e962bbbf14 100644
--- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj
+++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj
index be0290295a..11f87aea2a 100644
--- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj
+++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/basic-theme/Volo.Abp.BasicTheme.sln b/modules/basic-theme/Volo.Abp.BasicTheme.sln
deleted file mode 100644
index 66f19dad9a..0000000000
--- a/modules/basic-theme/Volo.Abp.BasicTheme.sln
+++ /dev/null
@@ -1,85 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.14.35906.104
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{0BC55E3B-4964-48E3-A390-2ADD37980149}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.Server.BasicTheme", "src\Volo.Abp.AspNetCore.Components.Server.BasicTheme\Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj", "{C8068E7F-4A04-4755-8976-C2A4C0ADC708}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.Web.BasicTheme", "src\Volo.Abp.AspNetCore.Components.Web.BasicTheme\Volo.Abp.AspNetCore.Components.Web.BasicTheme.csproj", "{655C0CF7-7BFA-45E4-A157-E868A97FB45B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme", "src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj", "{95954B0B-9FE0-4351-B1F2-53DDF03F0738}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", "src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj", "{21E20CC4-E82B-451B-BB73-141997C81C56}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo", "test\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo\Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj", "{7DFA95DB-F3A1-4883-AB03-9B02E540A134}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo", "test\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj", "{51B491ED-F959-4974-A876-528B5F16BC92}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests", "test\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests\Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj", "{8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BasicTheme.Installer", "src\Volo.Abp.BasicTheme.Installer\Volo.Abp.BasicTheme.Installer.csproj", "{3068A87F-3348-4981-8241-2630BC496117}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling", "src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling.csproj", "{D02053D9-10EF-4717-A792-A53F83347816}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {C8068E7F-4A04-4755-8976-C2A4C0ADC708}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C8068E7F-4A04-4755-8976-C2A4C0ADC708}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C8068E7F-4A04-4755-8976-C2A4C0ADC708}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C8068E7F-4A04-4755-8976-C2A4C0ADC708}.Release|Any CPU.Build.0 = Release|Any CPU
- {655C0CF7-7BFA-45E4-A157-E868A97FB45B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {655C0CF7-7BFA-45E4-A157-E868A97FB45B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {655C0CF7-7BFA-45E4-A157-E868A97FB45B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {655C0CF7-7BFA-45E4-A157-E868A97FB45B}.Release|Any CPU.Build.0 = Release|Any CPU
- {95954B0B-9FE0-4351-B1F2-53DDF03F0738}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {95954B0B-9FE0-4351-B1F2-53DDF03F0738}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {95954B0B-9FE0-4351-B1F2-53DDF03F0738}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {95954B0B-9FE0-4351-B1F2-53DDF03F0738}.Release|Any CPU.Build.0 = Release|Any CPU
- {21E20CC4-E82B-451B-BB73-141997C81C56}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {21E20CC4-E82B-451B-BB73-141997C81C56}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {21E20CC4-E82B-451B-BB73-141997C81C56}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {21E20CC4-E82B-451B-BB73-141997C81C56}.Release|Any CPU.Build.0 = Release|Any CPU
- {7DFA95DB-F3A1-4883-AB03-9B02E540A134}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {7DFA95DB-F3A1-4883-AB03-9B02E540A134}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {7DFA95DB-F3A1-4883-AB03-9B02E540A134}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {7DFA95DB-F3A1-4883-AB03-9B02E540A134}.Release|Any CPU.Build.0 = Release|Any CPU
- {51B491ED-F959-4974-A876-528B5F16BC92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {51B491ED-F959-4974-A876-528B5F16BC92}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {51B491ED-F959-4974-A876-528B5F16BC92}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {51B491ED-F959-4974-A876-528B5F16BC92}.Release|Any CPU.Build.0 = Release|Any CPU
- {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958}.Release|Any CPU.Build.0 = Release|Any CPU
- {3068A87F-3348-4981-8241-2630BC496117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3068A87F-3348-4981-8241-2630BC496117}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3068A87F-3348-4981-8241-2630BC496117}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3068A87F-3348-4981-8241-2630BC496117}.Release|Any CPU.Build.0 = Release|Any CPU
- {D02053D9-10EF-4717-A792-A53F83347816}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D02053D9-10EF-4717-A792-A53F83347816}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D02053D9-10EF-4717-A792-A53F83347816}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D02053D9-10EF-4717-A792-A53F83347816}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {C8068E7F-4A04-4755-8976-C2A4C0ADC708} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}
- {655C0CF7-7BFA-45E4-A157-E868A97FB45B} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}
- {95954B0B-9FE0-4351-B1F2-53DDF03F0738} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}
- {21E20CC4-E82B-451B-BB73-141997C81C56} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}
- {7DFA95DB-F3A1-4883-AB03-9B02E540A134} = {0BC55E3B-4964-48E3-A390-2ADD37980149}
- {51B491ED-F959-4974-A876-528B5F16BC92} = {0BC55E3B-4964-48E3-A390-2ADD37980149}
- {8C336CB8-F7A9-4203-AE55-D8F5FDB2A958} = {0BC55E3B-4964-48E3-A390-2ADD37980149}
- {3068A87F-3348-4981-8241-2630BC496117} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}
- {D02053D9-10EF-4717-A792-A53F83347816} = {ED6D078F-B0A2-48E8-A09D-3B7CDF6CE3D1}
- EndGlobalSection
-EndGlobal
diff --git a/modules/basic-theme/Volo.Abp.BasicTheme.slnx b/modules/basic-theme/Volo.Abp.BasicTheme.slnx
new file mode 100644
index 0000000000..44256584c5
--- /dev/null
+++ b/modules/basic-theme/Volo.Abp.BasicTheme.slnx
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj
index d324b434af..34a0bb1ea3 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Volo.Abp.AspNetCore.Components.Server.BasicTheme.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.csproj b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.csproj
index 154a2be3ff..f2c2c5f074 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.csproj
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Volo.Abp.AspNetCore.Components.Web.BasicTheme.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling.csproj b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling.csproj
index edf08d8ebe..5a3eec11c3 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling.csproj
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.Bundling
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj
index c070361f08..d384af12cf 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme
diff --git a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj
index b766fa0b81..fb98549f64 100644
--- a/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj
+++ b/modules/basic-theme/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic
Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic
diff --git a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj
index 2cd8fe922f..028f7e1a37 100644
--- a/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj
+++ b/modules/basic-theme/src/Volo.Abp.BasicTheme.Installer/Volo.Abp.BasicTheme.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj
index 5ea9ddce61..77e6c3d61b 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests
Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile
index b2a34f3bc8..8cc9715280 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure
index fa4f4d198a..d09db13290 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Dockerfile.azure
@@ -1,6 +1,6 @@
FROM node:16 AS nodebase
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
COPY --from=nodebase /usr/local/bin /usr/local/bin
COPY --from=nodebase /usr/local/lib /usr/local/lib
@@ -14,7 +14,7 @@ WORKDIR /app/abp/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.D
RUN abp install-libs
RUN dotnet publish -c Release -o bin/Release/publish
-FROM mcr.microsoft.com/dotnet/aspnet:9.0
+FROM mcr.microsoft.com/dotnet/aspnet:10.0
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj
index 9aa8142fda..bb6c9c0fd6 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj
index 11c1c98679..9cb31d2476 100644
--- a/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj
+++ b/modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln
deleted file mode 100644
index e0644dd332..0000000000
--- a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln
+++ /dev/null
@@ -1,97 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29001.49
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.Domain.Shared", "src\Volo.Abp.BlobStoring.Database.Domain.Shared\Volo.Abp.BlobStoring.Database.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.Domain", "src\Volo.Abp.BlobStoring.Database.Domain\Volo.Abp.BlobStoring.Database.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.EntityFrameworkCore", "src\Volo.Abp.BlobStoring.Database.EntityFrameworkCore\Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.MongoDB", "src\Volo.Abp.BlobStoring.Database.MongoDB\Volo.Abp.BlobStoring.Database.MongoDB.csproj", "{F1C58097-4C08-4D88-8976-6B3389391481}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.TestBase", "test\Volo.Abp.BlobStoring.Database.TestBase\Volo.Abp.BlobStoring.Database.TestBase.csproj", "{C5BB573D-3030-4BCB-88B7-F6A85C32766C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests", "test\Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests\Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj", "{527F645C-C1FC-406E-8479-81386C8ECF13}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.MongoDB.Tests", "test\Volo.Abp.BlobStoring.Database.MongoDB.Tests\Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj", "{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Database.Domain.Tests", "test\Volo.Abp.BlobStoring.Database.Domain.Tests\Volo.Abp.BlobStoring.Database.Domain.Tests.csproj", "{E60895E5-79C4-447D-88B7-85CB5BA336A4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{9E416AD3-1EC8-439A-9CFD-AAFFA89E2AEB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BlobStoring.Database.Host.ConsoleApp.ConsoleApp", "host\BlobStoring.Database.Host.ConsoleApp\src\BlobStoring.Database.Host.ConsoleApp.ConsoleApp\BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj", "{C3C4CB94-4F73-4D04-9076-8D98D5C6B475}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Database.Installer", "src\Volo.Abp.BlobStoring.Database.Installer\Volo.Abp.BlobStoring.Database.Installer.csproj", "{6181012D-3CBA-4825-B8A5-FD8926AE5661}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.Build.0 = Release|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.Build.0 = Release|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.Build.0 = Release|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Release|Any CPU.Build.0 = Release|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.Build.0 = Release|Any CPU
- {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C3C4CB94-4F73-4D04-9076-8D98D5C6B475}.Release|Any CPU.Build.0 = Release|Any CPU
- {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6181012D-3CBA-4825-B8A5-FD8926AE5661}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {D64C1577-4929-4B60-939E-96DE1534891A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {F1C58097-4C08-4D88-8976-6B3389391481} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {C3C4CB94-4F73-4D04-9076-8D98D5C6B475} = {9E416AD3-1EC8-439A-9CFD-AAFFA89E2AEB}
- {6181012D-3CBA-4825-B8A5-FD8926AE5661} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD}
- EndGlobalSection
-EndGlobal
diff --git a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.slnx b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.slnx
new file mode 100644
index 0000000000..b42915fe38
--- /dev/null
+++ b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.slnx
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.sln b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.sln
deleted file mode 100644
index 250233c828..0000000000
--- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.sln
+++ /dev/null
@@ -1,21 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BlobStoring.Database.Host.ConsoleApp.ConsoleApp", "src\BlobStoring.Database.Host.ConsoleApp.ConsoleApp\BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj", "{00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{E8067AED-2B6E-4134-AAF8-9101457D709A}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {00A2F7A3-BEC3-48F4-A91C-5A336C32A5D2} = {E8067AED-2B6E-4134-AAF8-9101457D709A}
- EndGlobalSection
-EndGlobal
diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.slnx b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.slnx
new file mode 100644
index 0000000000..6eda6303ff
--- /dev/null
+++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.slnx
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj
index 028552b088..6f48a934fa 100644
--- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj
+++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj
index b1c1cf8226..ad9e60e2bc 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj
index 8f2ec18714..1ec23e8812 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj
index af7a098577..9ee75bb1b1 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj
index 3543278561..b265f8632b 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Installer/Volo.Abp.BlobStoring.Database.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj
index 817549f442..d5856ec26a 100644
--- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj
+++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj
index 4dc289e2bc..a8ae3bc24c 100644
--- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj
+++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.Abp.BlobStoring.Database
diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj
index 1794eba7b5..3e1368f21f 100644
--- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj
+++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.Abp.BlobStoring.Database
diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj
index f5c1f561af..82f8669a69 100644
--- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj
+++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.Abp.BlobStoring.Database
diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj
index 8168f52edb..4462944dd1 100644
--- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj
+++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.Abp.BlobStoring.Database
diff --git a/modules/blogging/Volo.Blogging.sln b/modules/blogging/Volo.Blogging.sln
deleted file mode 100644
index c6cd3f41d4..0000000000
--- a/modules/blogging/Volo.Blogging.sln
+++ /dev/null
@@ -1,207 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.28729.10
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Domain.Shared", "src\Volo.Blogging.Domain.Shared\Volo.Blogging.Domain.Shared.csproj", "{F1D954AD-001A-4533-A8CC-94DDCF70B552}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Domain", "src\Volo.Blogging.Domain\Volo.Blogging.Domain.csproj", "{9F3AECDD-0B96-4EB4-BB86-59B488350B76}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Application.Contracts", "src\Volo.Blogging.Application.Contracts\Volo.Blogging.Application.Contracts.csproj", "{237BF49B-5FD8-413C-BBD7-2313D91D0553}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Application", "src\Volo.Blogging.Application\Volo.Blogging.Application.csproj", "{1678D922-E56D-4D6F-94F5-12AD13C1D919}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.EntityFrameworkCore", "src\Volo.Blogging.EntityFrameworkCore\Volo.Blogging.EntityFrameworkCore.csproj", "{87A423C6-900E-4D59-A4F2-B7C49D91E6F0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.HttpApi", "src\Volo.Blogging.HttpApi\Volo.Blogging.HttpApi.csproj", "{C20F42B4-0E93-43D3-B7CD-363D7E1B4750}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.HttpApi.Client", "src\Volo.Blogging.HttpApi.Client\Volo.Blogging.HttpApi.Client.csproj", "{03328648-6DE6-43C1-9A27-64771A73FAAD}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Web", "src\Volo.Blogging.Web\Volo.Blogging.Web.csproj", "{A4DBA051-7FB9-4AD7-B9B7-6810B2268122}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.BloggingTestApp.EntityFrameworkCore", "app\Volo.BloggingTestApp.EntityFrameworkCore\Volo.BloggingTestApp.EntityFrameworkCore.csproj", "{0D50B2EE-5F62-4C1D-B04D-56BE0CF75967}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.BloggingTestApp", "app\Volo.BloggingTestApp\Volo.BloggingTestApp.csproj", "{14409939-5A35-4145-A5C4-F3AED1617243}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{EB4FB44A-FE39-4245-9DAD-D6437BCE3870}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{42BF26EF-B8C7-42DC-9FFB-3653109B7776}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{25B3A516-5C0D-42E3-9294-E8A9346CEE4B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.TestBase", "test\Volo.Blogging.TestBase\Volo.Blogging.TestBase.csproj", "{BBE8D8BE-1B24-49FE-86EF-3848D4BB6829}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.EntityFrameworkCore.Tests", "test\Volo.Blogging.EntityFrameworkCore.Tests\Volo.Blogging.EntityFrameworkCore.Tests.csproj", "{0B9AAD44-1FCF-4AF1-838F-A09446E98E37}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Application.Tests", "test\Volo.Blogging.Application.Tests\Volo.Blogging.Application.Tests.csproj", "{C949B953-80B3-4B36-B535-1AD74A34FEAC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.MongoDB", "src\Volo.Blogging.MongoDB\Volo.Blogging.MongoDB.csproj", "{98C2D36A-F874-405D-8565-9CE59438E879}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.BloggingTestApp.MongoDB", "app\Volo.BloggingTestApp.MongoDB\Volo.BloggingTestApp.MongoDB.csproj", "{4C818374-2DE8-422F-8585-975E8366DB26}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.MongoDB.Tests", "test\Volo.Blogging.MongoDB.Tests\Volo.Blogging.MongoDB.Tests.csproj", "{0A29F64C-11F1-40B6-8E6D-91E86823775E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Blogging.Domain.Tests", "test\Volo.Blogging.Domain.Tests\Volo.Blogging.Domain.Tests.csproj", "{B6D7EF20-9921-490A-AA95-47E3E174DC9B}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin-app", "admin-app", "{BE2A423C-271E-469A-AD90-5640DEBEE9C1}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "domain", "domain", "{A9EF3061-5205-46C7-ACAA-23931CB98E4F}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "public-app", "public-app", "{1314C122-18F0-4C6B-895F-27645B6121FF}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.Application.Contracts", "src\Volo.Blogging.Admin.Application.Contracts\Volo.Blogging.Admin.Application.Contracts.csproj", "{D8DF4D56-644E-4ADF-9DB9-712DDA62B129}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.Application", "src\Volo.Blogging.Admin.Application\Volo.Blogging.Admin.Application.csproj", "{CB5DEBB3-5C2E-48E9-AA42-497575BCC7A4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.HttpApi", "src\Volo.Blogging.Admin.HttpApi\Volo.Blogging.Admin.HttpApi.csproj", "{59BBAF94-CC8E-4313-9143-F2F5C36A7C45}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.HttpApi.Client", "src\Volo.Blogging.Admin.HttpApi.Client\Volo.Blogging.Admin.HttpApi.Client.csproj", "{58A63CC9-C886-448B-AB4E-068600294D86}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Admin.Web", "src\Volo.Blogging.Admin.Web\Volo.Blogging.Admin.Web.csproj", "{DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{9FAD5B78-0577-4500-92D5-DC86E05F773C}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Application.Contracts.Shared", "src\Volo.Blogging.Application.Contracts.Shared\Volo.Blogging.Application.Contracts.Shared.csproj", "{E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Blogging.Installer", "src\Volo.Blogging.Installer\Volo.Blogging.Installer.csproj", "{C5EAF1A4-F1DE-44B4-9F8F-3602EC2575B5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {F1D954AD-001A-4533-A8CC-94DDCF70B552}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1D954AD-001A-4533-A8CC-94DDCF70B552}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1D954AD-001A-4533-A8CC-94DDCF70B552}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1D954AD-001A-4533-A8CC-94DDCF70B552}.Release|Any CPU.Build.0 = Release|Any CPU
- {9F3AECDD-0B96-4EB4-BB86-59B488350B76}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9F3AECDD-0B96-4EB4-BB86-59B488350B76}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9F3AECDD-0B96-4EB4-BB86-59B488350B76}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9F3AECDD-0B96-4EB4-BB86-59B488350B76}.Release|Any CPU.Build.0 = Release|Any CPU
- {237BF49B-5FD8-413C-BBD7-2313D91D0553}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {237BF49B-5FD8-413C-BBD7-2313D91D0553}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {237BF49B-5FD8-413C-BBD7-2313D91D0553}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {237BF49B-5FD8-413C-BBD7-2313D91D0553}.Release|Any CPU.Build.0 = Release|Any CPU
- {1678D922-E56D-4D6F-94F5-12AD13C1D919}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1678D922-E56D-4D6F-94F5-12AD13C1D919}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1678D922-E56D-4D6F-94F5-12AD13C1D919}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1678D922-E56D-4D6F-94F5-12AD13C1D919}.Release|Any CPU.Build.0 = Release|Any CPU
- {87A423C6-900E-4D59-A4F2-B7C49D91E6F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {87A423C6-900E-4D59-A4F2-B7C49D91E6F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {87A423C6-900E-4D59-A4F2-B7C49D91E6F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {87A423C6-900E-4D59-A4F2-B7C49D91E6F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {C20F42B4-0E93-43D3-B7CD-363D7E1B4750}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C20F42B4-0E93-43D3-B7CD-363D7E1B4750}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C20F42B4-0E93-43D3-B7CD-363D7E1B4750}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C20F42B4-0E93-43D3-B7CD-363D7E1B4750}.Release|Any CPU.Build.0 = Release|Any CPU
- {03328648-6DE6-43C1-9A27-64771A73FAAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {03328648-6DE6-43C1-9A27-64771A73FAAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {03328648-6DE6-43C1-9A27-64771A73FAAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {03328648-6DE6-43C1-9A27-64771A73FAAD}.Release|Any CPU.Build.0 = Release|Any CPU
- {A4DBA051-7FB9-4AD7-B9B7-6810B2268122}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A4DBA051-7FB9-4AD7-B9B7-6810B2268122}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A4DBA051-7FB9-4AD7-B9B7-6810B2268122}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A4DBA051-7FB9-4AD7-B9B7-6810B2268122}.Release|Any CPU.Build.0 = Release|Any CPU
- {0D50B2EE-5F62-4C1D-B04D-56BE0CF75967}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0D50B2EE-5F62-4C1D-B04D-56BE0CF75967}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0D50B2EE-5F62-4C1D-B04D-56BE0CF75967}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0D50B2EE-5F62-4C1D-B04D-56BE0CF75967}.Release|Any CPU.Build.0 = Release|Any CPU
- {14409939-5A35-4145-A5C4-F3AED1617243}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {14409939-5A35-4145-A5C4-F3AED1617243}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {14409939-5A35-4145-A5C4-F3AED1617243}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {14409939-5A35-4145-A5C4-F3AED1617243}.Release|Any CPU.Build.0 = Release|Any CPU
- {BBE8D8BE-1B24-49FE-86EF-3848D4BB6829}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BBE8D8BE-1B24-49FE-86EF-3848D4BB6829}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BBE8D8BE-1B24-49FE-86EF-3848D4BB6829}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BBE8D8BE-1B24-49FE-86EF-3848D4BB6829}.Release|Any CPU.Build.0 = Release|Any CPU
- {0B9AAD44-1FCF-4AF1-838F-A09446E98E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0B9AAD44-1FCF-4AF1-838F-A09446E98E37}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0B9AAD44-1FCF-4AF1-838F-A09446E98E37}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0B9AAD44-1FCF-4AF1-838F-A09446E98E37}.Release|Any CPU.Build.0 = Release|Any CPU
- {C949B953-80B3-4B36-B535-1AD74A34FEAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C949B953-80B3-4B36-B535-1AD74A34FEAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C949B953-80B3-4B36-B535-1AD74A34FEAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C949B953-80B3-4B36-B535-1AD74A34FEAC}.Release|Any CPU.Build.0 = Release|Any CPU
- {98C2D36A-F874-405D-8565-9CE59438E879}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {98C2D36A-F874-405D-8565-9CE59438E879}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {98C2D36A-F874-405D-8565-9CE59438E879}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {98C2D36A-F874-405D-8565-9CE59438E879}.Release|Any CPU.Build.0 = Release|Any CPU
- {4C818374-2DE8-422F-8585-975E8366DB26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4C818374-2DE8-422F-8585-975E8366DB26}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4C818374-2DE8-422F-8585-975E8366DB26}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4C818374-2DE8-422F-8585-975E8366DB26}.Release|Any CPU.Build.0 = Release|Any CPU
- {0A29F64C-11F1-40B6-8E6D-91E86823775E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0A29F64C-11F1-40B6-8E6D-91E86823775E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0A29F64C-11F1-40B6-8E6D-91E86823775E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0A29F64C-11F1-40B6-8E6D-91E86823775E}.Release|Any CPU.Build.0 = Release|Any CPU
- {B6D7EF20-9921-490A-AA95-47E3E174DC9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B6D7EF20-9921-490A-AA95-47E3E174DC9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B6D7EF20-9921-490A-AA95-47E3E174DC9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B6D7EF20-9921-490A-AA95-47E3E174DC9B}.Release|Any CPU.Build.0 = Release|Any CPU
- {D8DF4D56-644E-4ADF-9DB9-712DDA62B129}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D8DF4D56-644E-4ADF-9DB9-712DDA62B129}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D8DF4D56-644E-4ADF-9DB9-712DDA62B129}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D8DF4D56-644E-4ADF-9DB9-712DDA62B129}.Release|Any CPU.Build.0 = Release|Any CPU
- {CB5DEBB3-5C2E-48E9-AA42-497575BCC7A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CB5DEBB3-5C2E-48E9-AA42-497575BCC7A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CB5DEBB3-5C2E-48E9-AA42-497575BCC7A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CB5DEBB3-5C2E-48E9-AA42-497575BCC7A4}.Release|Any CPU.Build.0 = Release|Any CPU
- {59BBAF94-CC8E-4313-9143-F2F5C36A7C45}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {59BBAF94-CC8E-4313-9143-F2F5C36A7C45}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {59BBAF94-CC8E-4313-9143-F2F5C36A7C45}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {59BBAF94-CC8E-4313-9143-F2F5C36A7C45}.Release|Any CPU.Build.0 = Release|Any CPU
- {58A63CC9-C886-448B-AB4E-068600294D86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {58A63CC9-C886-448B-AB4E-068600294D86}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {58A63CC9-C886-448B-AB4E-068600294D86}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {58A63CC9-C886-448B-AB4E-068600294D86}.Release|Any CPU.Build.0 = Release|Any CPU
- {DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB}.Release|Any CPU.Build.0 = Release|Any CPU
- {E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4}.Release|Any CPU.Build.0 = Release|Any CPU
- {C5EAF1A4-F1DE-44B4-9F8F-3602EC2575B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C5EAF1A4-F1DE-44B4-9F8F-3602EC2575B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C5EAF1A4-F1DE-44B4-9F8F-3602EC2575B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C5EAF1A4-F1DE-44B4-9F8F-3602EC2575B5}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {0D50B2EE-5F62-4C1D-B04D-56BE0CF75967} = {EB4FB44A-FE39-4245-9DAD-D6437BCE3870}
- {14409939-5A35-4145-A5C4-F3AED1617243} = {EB4FB44A-FE39-4245-9DAD-D6437BCE3870}
- {BBE8D8BE-1B24-49FE-86EF-3848D4BB6829} = {25B3A516-5C0D-42E3-9294-E8A9346CEE4B}
- {0B9AAD44-1FCF-4AF1-838F-A09446E98E37} = {25B3A516-5C0D-42E3-9294-E8A9346CEE4B}
- {C949B953-80B3-4B36-B535-1AD74A34FEAC} = {25B3A516-5C0D-42E3-9294-E8A9346CEE4B}
- {4C818374-2DE8-422F-8585-975E8366DB26} = {EB4FB44A-FE39-4245-9DAD-D6437BCE3870}
- {0A29F64C-11F1-40B6-8E6D-91E86823775E} = {25B3A516-5C0D-42E3-9294-E8A9346CEE4B}
- {B6D7EF20-9921-490A-AA95-47E3E174DC9B} = {25B3A516-5C0D-42E3-9294-E8A9346CEE4B}
- {BE2A423C-271E-469A-AD90-5640DEBEE9C1} = {42BF26EF-B8C7-42DC-9FFB-3653109B7776}
- {A9EF3061-5205-46C7-ACAA-23931CB98E4F} = {42BF26EF-B8C7-42DC-9FFB-3653109B7776}
- {1314C122-18F0-4C6B-895F-27645B6121FF} = {42BF26EF-B8C7-42DC-9FFB-3653109B7776}
- {9F3AECDD-0B96-4EB4-BB86-59B488350B76} = {A9EF3061-5205-46C7-ACAA-23931CB98E4F}
- {F1D954AD-001A-4533-A8CC-94DDCF70B552} = {A9EF3061-5205-46C7-ACAA-23931CB98E4F}
- {87A423C6-900E-4D59-A4F2-B7C49D91E6F0} = {A9EF3061-5205-46C7-ACAA-23931CB98E4F}
- {98C2D36A-F874-405D-8565-9CE59438E879} = {A9EF3061-5205-46C7-ACAA-23931CB98E4F}
- {1678D922-E56D-4D6F-94F5-12AD13C1D919} = {1314C122-18F0-4C6B-895F-27645B6121FF}
- {237BF49B-5FD8-413C-BBD7-2313D91D0553} = {1314C122-18F0-4C6B-895F-27645B6121FF}
- {C20F42B4-0E93-43D3-B7CD-363D7E1B4750} = {1314C122-18F0-4C6B-895F-27645B6121FF}
- {03328648-6DE6-43C1-9A27-64771A73FAAD} = {1314C122-18F0-4C6B-895F-27645B6121FF}
- {A4DBA051-7FB9-4AD7-B9B7-6810B2268122} = {1314C122-18F0-4C6B-895F-27645B6121FF}
- {D8DF4D56-644E-4ADF-9DB9-712DDA62B129} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
- {CB5DEBB3-5C2E-48E9-AA42-497575BCC7A4} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
- {59BBAF94-CC8E-4313-9143-F2F5C36A7C45} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
- {58A63CC9-C886-448B-AB4E-068600294D86} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
- {DB75CA32-96A5-4D10-8DD0-E62A3D0DDBCB} = {BE2A423C-271E-469A-AD90-5640DEBEE9C1}
- {9FAD5B78-0577-4500-92D5-DC86E05F773C} = {42BF26EF-B8C7-42DC-9FFB-3653109B7776}
- {E28EBBE0-8EB7-4FC1-9267-E6D30993EAE4} = {9FAD5B78-0577-4500-92D5-DC86E05F773C}
- {C5EAF1A4-F1DE-44B4-9F8F-3602EC2575B5} = {9FAD5B78-0577-4500-92D5-DC86E05F773C}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {F2BAE819-78D4-407A-9201-22473B2850B0}
- EndGlobalSection
-EndGlobal
diff --git a/modules/blogging/Volo.Blogging.slnx b/modules/blogging/Volo.Blogging.slnx
new file mode 100644
index 0000000000..f887ba9d73
--- /dev/null
+++ b/modules/blogging/Volo.Blogging.slnx
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj
index c6b77b8b2c..83d90c096d 100644
--- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj
+++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj
index efa14361a2..05d90a27cb 100644
--- a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj
+++ b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj
index e157d32f25..5523ac697b 100644
--- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj
+++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
InProcess
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj
index 7e764d9f88..3927447c06 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj
+++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Blogging.Admin.Application.Contracts
Volo.Blogging.Admin.Application.Contracts
true
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj
index aea034ba35..bcffdd8a59 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj
+++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.Admin.Application
Volo.Blogging.Admin.Application
diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj
index 1bd0e02c67..63d0ca9914 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj
+++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Blogging.Admin.HttpApi.Client
Volo.Blogging.Admin.HttpApi.Client
diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj
index 2aea7d6494..f9b564071c 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj
+++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.Admin.HttpApi
Volo.Blogging.Admin.HttpApi
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs b/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs
index 79e933465c..9d56153704 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs
+++ b/modules/blogging/src/Volo.Blogging.Admin.Web/BloggingAdminWebModule.cs
@@ -23,7 +23,11 @@ namespace Volo.Blogging.Admin
{
context.Services.PreConfigure(options =>
{
- options.AddAssemblyResource(typeof(BloggingResource), typeof(BloggingAdminWebModule).Assembly);
+ options.AddAssemblyResource(
+ typeof(BloggingResource),
+ typeof(BloggingAdminWebModule).Assembly,
+ typeof(BloggingAdminApplicationContractsModule).Assembly
+ );
});
PreConfigure(mvcBuilder =>
diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj
index 89b19e0be5..8d8e6943a2 100644
--- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj
+++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.Admin.Web
Volo.Blogging.Admin.Web
2.8
diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj
index 8a223b0a5f..df56875887 100644
--- a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj
+++ b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Blogging.Application.Contracts.Shared
Volo.Blogging.Application.Contracts.Shared
diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj
index b2ce64a90a..7b62408d4a 100644
--- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj
+++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Blogging.Application.Contracts
Volo.Blogging.Application.Contracts
true
diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj
index 08d01780d6..0aa0ded30e 100644
--- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj
+++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.Application
Volo.Blogging.Application
diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj
index 7c5a78f4f6..f06a7f376f 100644
--- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj
+++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Blogging.Domain.Shared
Volo.Blogging.Domain.Shared
true
diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj
index 75291c83c1..ba90d3c374 100644
--- a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj
+++ b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.Domain
Volo.Blogging.Domain
diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj
index 3dd83af0c5..c8003b7d47 100644
--- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj
+++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.EntityFrameworkCore
Volo.Blogging.EntityFrameworkCore
diff --git a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj
index a2d58217fb..b2c9dee648 100644
--- a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj
+++ b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Blogging.HttpApi.Client
Volo.Blogging.HttpApi.Client
diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj
index 5a6480abd6..151f87696b 100644
--- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj
+++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.HttpApi
Volo.Blogging.HttpApi
diff --git a/modules/blogging/src/Volo.Blogging.Installer/Volo.Blogging.Installer.csproj b/modules/blogging/src/Volo.Blogging.Installer/Volo.Blogging.Installer.csproj
index a5fbe01cca..8d901bb264 100644
--- a/modules/blogging/src/Volo.Blogging.Installer/Volo.Blogging.Installer.csproj
+++ b/modules/blogging/src/Volo.Blogging.Installer/Volo.Blogging.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj
index bbe4963401..561e6c2470 100644
--- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj
+++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.MongoDB
Volo.Blogging.MongoDB
diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs
index 95b66ee136..6d78f7f795 100644
--- a/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs
+++ b/modules/blogging/src/Volo.Blogging.Web/BloggingWebModule.cs
@@ -31,7 +31,11 @@ namespace Volo.Blogging
{
context.Services.PreConfigure(options =>
{
- options.AddAssemblyResource(typeof(BloggingResource), typeof(BloggingWebModule).Assembly);
+ options.AddAssemblyResource(
+ typeof(BloggingResource),
+ typeof(BloggingWebModule).Assembly,
+ typeof(BloggingApplicationContractsModule).Assembly
+ );
});
PreConfigure(mvcBuilder =>
diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj
index a7156b0e8d..0379bd280d 100644
--- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj
+++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.Blogging.Web
Volo.Blogging.Web
2.8
diff --git a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj
index c08a315a33..4170262434 100644
--- a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj
+++ b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj
index 6e9d3c5fa0..328a041f64 100644
--- a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj
+++ b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj
index d5c859a42f..27301c22ee 100644
--- a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj
+++ b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj
index c71d73c65d..54050e0f31 100644
--- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj
+++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj
index 657be0068d..f005bd6d19 100644
--- a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj
+++ b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
diff --git a/modules/client-simulation/Volo.ClientSimulation.sln b/modules/client-simulation/Volo.ClientSimulation.sln
deleted file mode 100644
index 38062068bd..0000000000
--- a/modules/client-simulation/Volo.ClientSimulation.sln
+++ /dev/null
@@ -1,46 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.28307.168
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{42503D63-D292-4A18-8ECE-8270167DD842}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.ClientSimulation", "src\Volo.ClientSimulation\Volo.ClientSimulation.csproj", "{BB780A98-727D-49CF-9A4C-91E6EA7047AD}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "demo", "demo", "{61863D05-6DA0-4730-9A38-77D1AE304268}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.ClientSimulation.Demo", "demo\Volo.ClientSimulation.Demo\Volo.ClientSimulation.Demo.csproj", "{B5BFE88A-60B6-4289-969A-1A72BF6DFDF0}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.ClientSimulation.Web", "src\Volo.ClientSimulation.Web\Volo.ClientSimulation.Web.csproj", "{1888142B-23AE-45C5-8AE8-43920066D8D8}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BB780A98-727D-49CF-9A4C-91E6EA7047AD}.Release|Any CPU.Build.0 = Release|Any CPU
- {B5BFE88A-60B6-4289-969A-1A72BF6DFDF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B5BFE88A-60B6-4289-969A-1A72BF6DFDF0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B5BFE88A-60B6-4289-969A-1A72BF6DFDF0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B5BFE88A-60B6-4289-969A-1A72BF6DFDF0}.Release|Any CPU.Build.0 = Release|Any CPU
- {1888142B-23AE-45C5-8AE8-43920066D8D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1888142B-23AE-45C5-8AE8-43920066D8D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1888142B-23AE-45C5-8AE8-43920066D8D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1888142B-23AE-45C5-8AE8-43920066D8D8}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {BB780A98-727D-49CF-9A4C-91E6EA7047AD} = {42503D63-D292-4A18-8ECE-8270167DD842}
- {B5BFE88A-60B6-4289-969A-1A72BF6DFDF0} = {61863D05-6DA0-4730-9A38-77D1AE304268}
- {1888142B-23AE-45C5-8AE8-43920066D8D8} = {42503D63-D292-4A18-8ECE-8270167DD842}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {1AF598E1-2012-47B4-A591-ADC9F327600A}
- EndGlobalSection
-EndGlobal
diff --git a/modules/client-simulation/Volo.ClientSimulation.slnx b/modules/client-simulation/Volo.ClientSimulation.slnx
new file mode 100644
index 0000000000..63b8b2d0ec
--- /dev/null
+++ b/modules/client-simulation/Volo.ClientSimulation.slnx
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj
index 7f808baab7..1f4384314e 100644
--- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj
+++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/Volo.ClientSimulation.Demo.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj
index 3488db3c1c..df46962520 100644
--- a/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj
+++ b/modules/client-simulation/src/Volo.ClientSimulation.Web/Volo.ClientSimulation.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.ClientSimulation.Web
Volo.ClientSimulation.Web
Library
diff --git a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj
index 2cab8fce07..a6b4cac2e9 100644
--- a/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj
+++ b/modules/client-simulation/src/Volo.ClientSimulation/Volo.ClientSimulation.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
Volo.ClientSimulation
Volo.ClientSimulation
diff --git a/modules/cms-kit/Volo.CmsKit.sln b/modules/cms-kit/Volo.CmsKit.sln
deleted file mode 100644
index e35e143c92..0000000000
--- a/modules/cms-kit/Volo.CmsKit.sln
+++ /dev/null
@@ -1,291 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.2.32616.157
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Domain.Shared", "src\Volo.CmsKit.Domain.Shared\Volo.CmsKit.Domain.Shared.csproj", "{D64C1577-4929-4B60-939E-96DE1534891A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Domain", "src\Volo.CmsKit.Domain\Volo.CmsKit.Domain.csproj", "{F2840BC7-0188-4606-9126-DADD0F5ABF7A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Application.Contracts", "src\Volo.CmsKit.Application.Contracts\Volo.CmsKit.Application.Contracts.csproj", "{BD65D04F-08D5-40C1-8C24-77CA0BACB877}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Application", "src\Volo.CmsKit.Application\Volo.CmsKit.Application.csproj", "{78040F9E-3501-4A40-82DF-00A597710F35}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{649A3FFA-182F-4E56-9717-E6A9A2BEC545}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "host", "host", "{E400416D-2895-4512-9D17-90681EEC7E0A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.EntityFrameworkCore", "src\Volo.CmsKit.EntityFrameworkCore\Volo.CmsKit.EntityFrameworkCore.csproj", "{0CE86223-D31D-4315-A1F5-87BA3EE1B844}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.MongoDB", "src\Volo.CmsKit.MongoDB\Volo.CmsKit.MongoDB.csproj", "{F1C58097-4C08-4D88-8976-6B3389391481}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.HttpApi", "src\Volo.CmsKit.HttpApi\Volo.CmsKit.HttpApi.csproj", "{077AA5F8-8B61-420C-A6B5-0150A66FDB34}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.HttpApi.Client", "src\Volo.CmsKit.HttpApi.Client\Volo.CmsKit.HttpApi.Client.csproj", "{36E2735F-CEAB-44C8-A6D1-2CDAFF399751}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.TestBase", "test\Volo.CmsKit.TestBase\Volo.CmsKit.TestBase.csproj", "{C5BB573D-3030-4BCB-88B7-F6A85C32766C}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.EntityFrameworkCore.Tests", "test\Volo.CmsKit.EntityFrameworkCore.Tests\Volo.CmsKit.EntityFrameworkCore.Tests.csproj", "{527F645C-C1FC-406E-8479-81386C8ECF13}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.MongoDB.Tests", "test\Volo.CmsKit.MongoDB.Tests\Volo.CmsKit.MongoDB.Tests.csproj", "{D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Domain.Tests", "test\Volo.CmsKit.Domain.Tests\Volo.CmsKit.Domain.Tests.csproj", "{E60895E5-79C4-447D-88B7-85CB5BA336A4}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Application.Tests", "test\Volo.CmsKit.Application.Tests\Volo.CmsKit.Application.Tests.csproj", "{90CB5DC4-C040-45C7-8900-9688B26405BC}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.HttpApi.Host", "host\Volo.CmsKit.HttpApi.Host\Volo.CmsKit.HttpApi.Host.csproj", "{37B135B0-DAFE-4616-B25C-1BDF32FC44A2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Web", "src\Volo.CmsKit.Web\Volo.CmsKit.Web.csproj", "{3B7B6317-1B85-4164-8E11-75574F80AE17}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.HttpApi.Client.ConsoleTestApp", "test\Volo.CmsKit.HttpApi.Client.ConsoleTestApp\Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj", "{1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Web.Host", "host\Volo.CmsKit.Web.Host\Volo.CmsKit.Web.Host.csproj", "{73513786-B6C6-4A21-89C5-0FBDD0A46107}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.IdentityServer", "host\Volo.CmsKit.IdentityServer\Volo.CmsKit.IdentityServer.csproj", "{690203F4-3CD5-4569-88D9-EE831EEA5F5F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Host.Shared", "host\Volo.CmsKit.Host.Shared\Volo.CmsKit.Host.Shared.csproj", "{F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Web.Unified", "host\Volo.CmsKit.Web.Unified\Volo.CmsKit.Web.Unified.csproj", "{3D872C41-E226-45C8-89C1-9D3DBD7C73F2}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "core", "core", "{DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unified", "unified", "{963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "public", "public", "{3C74B8E8-CB34-49C8-B02A-05E959601FEE}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin", "admin", "{E737206B-FA99-4460-861D-82902ECE93DB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Admin.Application", "src\Volo.CmsKit.Admin.Application\Volo.CmsKit.Admin.Application.csproj", "{A5363215-BF61-467F-80D0-40D93590F509}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Admin.Application.Contracts", "src\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj", "{AE000591-86E3-4AD4-AA86-C47FED4A3ACB}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Admin.HttpApi", "src\Volo.CmsKit.Admin.HttpApi\Volo.CmsKit.Admin.HttpApi.csproj", "{A402371A-B714-4BBC-AC22-9C0BD7679F25}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Admin.HttpApi.Client", "src\Volo.CmsKit.Admin.HttpApi.Client\Volo.CmsKit.Admin.HttpApi.Client.csproj", "{97D7BB7A-1D45-4E54-B327-3718F62E8A86}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Admin.Web", "src\Volo.CmsKit.Admin.Web\Volo.CmsKit.Admin.Web.csproj", "{CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Public.Application", "src\Volo.CmsKit.Public.Application\Volo.CmsKit.Public.Application.csproj", "{E3963E05-9645-4AFD-AC99-C5E9F9153B61}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Public.Application.Contracts", "src\Volo.CmsKit.Public.Application.Contracts\Volo.CmsKit.Public.Application.Contracts.csproj", "{50147423-F37D-46D3-A25D-C51CD48A7DA7}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Public.HttpApi", "src\Volo.CmsKit.Public.HttpApi\Volo.CmsKit.Public.HttpApi.csproj", "{37C03B72-5FD8-4B67-8090-8A20CD8095A6}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Public.HttpApi.Client", "src\Volo.CmsKit.Public.HttpApi.Client\Volo.CmsKit.Public.HttpApi.Client.csproj", "{E790C2C6-39AC-4068-AA7D-309DC9AA1437}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Public.Web", "src\Volo.CmsKit.Public.Web\Volo.CmsKit.Public.Web.csproj", "{BE2572ED-F505-435D-9A90-30DBC6C2DC1D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Common.Web", "src\Volo.CmsKit.Common.Web\Volo.CmsKit.Common.Web.csproj", "{4B2C2431-7351-41F0-B5E1-F8A9859FA838}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Common.Application.Contracts", "src\Volo.CmsKit.Common.Application.Contracts\Volo.CmsKit.Common.Application.Contracts.csproj", "{A0D38C5B-047F-49C1-9A6D-B41E4FB9B323}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Common.Application", "src\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj", "{5D9BD65D-353E-4618-BE49-E1DF4CFF2393}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Common.HttpApi", "src\Volo.CmsKit.Common.HttpApi\Volo.CmsKit.Common.HttpApi.csproj", "{E8CC280A-D049-4564-9C71-2F5657C17937}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Common.HttpApi.Client", "src\Volo.CmsKit.Common.HttpApi.Client\Volo.CmsKit.Common.HttpApi.Client.csproj", "{EC98F006-2002-4CE2-AA62-5EBB589ACD79}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.CmsKit.Installer", "src\Volo.CmsKit.Installer\Volo.CmsKit.Installer.csproj", "{908C157E-2352-4373-BF5D-E5DA19913390}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D64C1577-4929-4B60-939E-96DE1534891A}.Release|Any CPU.Build.0 = Release|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A}.Release|Any CPU.Build.0 = Release|Any CPU
- {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BD65D04F-08D5-40C1-8C24-77CA0BACB877}.Release|Any CPU.Build.0 = Release|Any CPU
- {78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {78040F9E-3501-4A40-82DF-00A597710F35}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {78040F9E-3501-4A40-82DF-00A597710F35}.Release|Any CPU.Build.0 = Release|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1C58097-4C08-4D88-8976-6B3389391481}.Release|Any CPU.Build.0 = Release|Any CPU
- {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {077AA5F8-8B61-420C-A6B5-0150A66FDB34}.Release|Any CPU.Build.0 = Release|Any CPU
- {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {36E2735F-CEAB-44C8-A6D1-2CDAFF399751}.Release|Any CPU.Build.0 = Release|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C}.Release|Any CPU.Build.0 = Release|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {527F645C-C1FC-406E-8479-81386C8ECF13}.Release|Any CPU.Build.0 = Release|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6}.Release|Any CPU.Build.0 = Release|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E60895E5-79C4-447D-88B7-85CB5BA336A4}.Release|Any CPU.Build.0 = Release|Any CPU
- {90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {90CB5DC4-C040-45C7-8900-9688B26405BC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {90CB5DC4-C040-45C7-8900-9688B26405BC}.Release|Any CPU.Build.0 = Release|Any CPU
- {37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {37B135B0-DAFE-4616-B25C-1BDF32FC44A2}.Release|Any CPU.Build.0 = Release|Any CPU
- {3B7B6317-1B85-4164-8E11-75574F80AE17}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3B7B6317-1B85-4164-8E11-75574F80AE17}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3B7B6317-1B85-4164-8E11-75574F80AE17}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3B7B6317-1B85-4164-8E11-75574F80AE17}.Release|Any CPU.Build.0 = Release|Any CPU
- {1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8}.Release|Any CPU.Build.0 = Release|Any CPU
- {73513786-B6C6-4A21-89C5-0FBDD0A46107}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {73513786-B6C6-4A21-89C5-0FBDD0A46107}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {73513786-B6C6-4A21-89C5-0FBDD0A46107}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {73513786-B6C6-4A21-89C5-0FBDD0A46107}.Release|Any CPU.Build.0 = Release|Any CPU
- {690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {690203F4-3CD5-4569-88D9-EE831EEA5F5F}.Release|Any CPU.Build.0 = Release|Any CPU
- {F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB}.Release|Any CPU.Build.0 = Release|Any CPU
- {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3D872C41-E226-45C8-89C1-9D3DBD7C73F2}.Release|Any CPU.Build.0 = Release|Any CPU
- {A5363215-BF61-467F-80D0-40D93590F509}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A5363215-BF61-467F-80D0-40D93590F509}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A5363215-BF61-467F-80D0-40D93590F509}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A5363215-BF61-467F-80D0-40D93590F509}.Release|Any CPU.Build.0 = Release|Any CPU
- {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AE000591-86E3-4AD4-AA86-C47FED4A3ACB}.Release|Any CPU.Build.0 = Release|Any CPU
- {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A402371A-B714-4BBC-AC22-9C0BD7679F25}.Release|Any CPU.Build.0 = Release|Any CPU
- {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {97D7BB7A-1D45-4E54-B327-3718F62E8A86}.Release|Any CPU.Build.0 = Release|Any CPU
- {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045}.Release|Any CPU.Build.0 = Release|Any CPU
- {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E3963E05-9645-4AFD-AC99-C5E9F9153B61}.Release|Any CPU.Build.0 = Release|Any CPU
- {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {50147423-F37D-46D3-A25D-C51CD48A7DA7}.Release|Any CPU.Build.0 = Release|Any CPU
- {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {37C03B72-5FD8-4B67-8090-8A20CD8095A6}.Release|Any CPU.Build.0 = Release|Any CPU
- {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E790C2C6-39AC-4068-AA7D-309DC9AA1437}.Release|Any CPU.Build.0 = Release|Any CPU
- {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BE2572ED-F505-435D-9A90-30DBC6C2DC1D}.Release|Any CPU.Build.0 = Release|Any CPU
- {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {4B2C2431-7351-41F0-B5E1-F8A9859FA838}.Release|Any CPU.Build.0 = Release|Any CPU
- {A0D38C5B-047F-49C1-9A6D-B41E4FB9B323}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A0D38C5B-047F-49C1-9A6D-B41E4FB9B323}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A0D38C5B-047F-49C1-9A6D-B41E4FB9B323}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A0D38C5B-047F-49C1-9A6D-B41E4FB9B323}.Release|Any CPU.Build.0 = Release|Any CPU
- {5D9BD65D-353E-4618-BE49-E1DF4CFF2393}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5D9BD65D-353E-4618-BE49-E1DF4CFF2393}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5D9BD65D-353E-4618-BE49-E1DF4CFF2393}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5D9BD65D-353E-4618-BE49-E1DF4CFF2393}.Release|Any CPU.Build.0 = Release|Any CPU
- {E8CC280A-D049-4564-9C71-2F5657C17937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E8CC280A-D049-4564-9C71-2F5657C17937}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E8CC280A-D049-4564-9C71-2F5657C17937}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E8CC280A-D049-4564-9C71-2F5657C17937}.Release|Any CPU.Build.0 = Release|Any CPU
- {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EC98F006-2002-4CE2-AA62-5EBB589ACD79}.Release|Any CPU.Build.0 = Release|Any CPU
- {908C157E-2352-4373-BF5D-E5DA19913390}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {908C157E-2352-4373-BF5D-E5DA19913390}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {908C157E-2352-4373-BF5D-E5DA19913390}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {908C157E-2352-4373-BF5D-E5DA19913390}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {D64C1577-4929-4B60-939E-96DE1534891A} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {F2840BC7-0188-4606-9126-DADD0F5ABF7A} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {BD65D04F-08D5-40C1-8C24-77CA0BACB877} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
- {78040F9E-3501-4A40-82DF-00A597710F35} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
- {0CE86223-D31D-4315-A1F5-87BA3EE1B844} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {F1C58097-4C08-4D88-8976-6B3389391481} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {077AA5F8-8B61-420C-A6B5-0150A66FDB34} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
- {36E2735F-CEAB-44C8-A6D1-2CDAFF399751} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
- {C5BB573D-3030-4BCB-88B7-F6A85C32766C} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {527F645C-C1FC-406E-8479-81386C8ECF13} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {D0AD9179-125C-40B2-A8EE-CD4C1EE24BB6} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {E60895E5-79C4-447D-88B7-85CB5BA336A4} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {90CB5DC4-C040-45C7-8900-9688B26405BC} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {37B135B0-DAFE-4616-B25C-1BDF32FC44A2} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {3B7B6317-1B85-4164-8E11-75574F80AE17} = {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49}
- {1EDCD6D4-DF3A-4E3B-ABB6-C0D0B373EAB8} = {CCD2960C-23CC-4AB4-B84D-60C7AAA52F4D}
- {73513786-B6C6-4A21-89C5-0FBDD0A46107} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {690203F4-3CD5-4569-88D9-EE831EEA5F5F} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {F6AC8D4A-EDD7-4514-8E8A-5BCB019864DB} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {3D872C41-E226-45C8-89C1-9D3DBD7C73F2} = {E400416D-2895-4512-9D17-90681EEC7E0A}
- {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {963FBC0A-1FBA-47DA-8A61-8F57D3EC8D49} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {3C74B8E8-CB34-49C8-B02A-05E959601FEE} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {E737206B-FA99-4460-861D-82902ECE93DB} = {649A3FFA-182F-4E56-9717-E6A9A2BEC545}
- {A5363215-BF61-467F-80D0-40D93590F509} = {E737206B-FA99-4460-861D-82902ECE93DB}
- {AE000591-86E3-4AD4-AA86-C47FED4A3ACB} = {E737206B-FA99-4460-861D-82902ECE93DB}
- {A402371A-B714-4BBC-AC22-9C0BD7679F25} = {E737206B-FA99-4460-861D-82902ECE93DB}
- {97D7BB7A-1D45-4E54-B327-3718F62E8A86} = {E737206B-FA99-4460-861D-82902ECE93DB}
- {CA6A7FAF-0EF9-42D9-B7A3-5CA690687045} = {E737206B-FA99-4460-861D-82902ECE93DB}
- {E3963E05-9645-4AFD-AC99-C5E9F9153B61} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE}
- {50147423-F37D-46D3-A25D-C51CD48A7DA7} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE}
- {37C03B72-5FD8-4B67-8090-8A20CD8095A6} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE}
- {E790C2C6-39AC-4068-AA7D-309DC9AA1437} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE}
- {BE2572ED-F505-435D-9A90-30DBC6C2DC1D} = {3C74B8E8-CB34-49C8-B02A-05E959601FEE}
- {4B2C2431-7351-41F0-B5E1-F8A9859FA838} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {A0D38C5B-047F-49C1-9A6D-B41E4FB9B323} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {5D9BD65D-353E-4618-BE49-E1DF4CFF2393} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {E8CC280A-D049-4564-9C71-2F5657C17937} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {EC98F006-2002-4CE2-AA62-5EBB589ACD79} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- {908C157E-2352-4373-BF5D-E5DA19913390} = {DDE20914-DD1B-4C7B-86FF-F21E6B5DF1D1}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD}
- EndGlobalSection
-EndGlobal
diff --git a/modules/cms-kit/Volo.CmsKit.slnx b/modules/cms-kit/Volo.CmsKit.slnx
new file mode 100644
index 0000000000..dc78b165a9
--- /dev/null
+++ b/modules/cms-kit/Volo.CmsKit.slnx
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/cms-kit/database/Dockerfile b/modules/cms-kit/database/Dockerfile
index 2eb1345cd0..90dd7e6fa3 100644
--- a/modules/cms-kit/database/Dockerfile
+++ b/modules/cms-kit/database/Dockerfile
@@ -1,4 +1,4 @@
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
COPY . .
WORKDIR /templates/service/host/IdentityServerHost
diff --git a/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj b/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj
index 6c638dab0e..36533efbda 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj
+++ b/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj
@@ -1,7 +1,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.CmsKit
diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Dockerfile b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Dockerfile
index e9718e16d6..46cd1cb964 100644
--- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Dockerfile
+++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Dockerfile
@@ -1,9 +1,9 @@
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY . .
WORKDIR /src/templates/service/host/Volo.CmsKit.HttpApi.Host
diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj
index 9dc85442bb..ac7a454008 100644
--- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj
+++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
true
Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Dockerfile b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Dockerfile
index c9f7f1a020..3b8e04be3d 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Dockerfile
+++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Dockerfile
@@ -1,9 +1,9 @@
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY . .
WORKDIR /src/templates/service/host/Volo.CmsKit.IdentityServer
diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj
index 2f0f9c0fee..093c4ffc88 100644
--- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj
+++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
true
Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj
index 214328168c..2f20551c2d 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
true
Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010
diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj
index 4ffdf018d1..827dfdfb83 100644
--- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj
+++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
true
Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj
index 9b8e5b4df2..349c9fcac3 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
index a7a998e292..d54b065631 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj
index f39bcbc3be..c2e15883b2 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj
index 57f972c71b..581d581d0a 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
index 6dbaea3eb9..7732edd409 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
true
Library
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj
index b42b8b9416..d2a8333872 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj
index 0fa9332fd8..124004a13e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj
index 71d28ddecd..35eaad3c5e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj
index 014d592dc7..379a2ba1f3 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj
index ca7f703938..806a9326b7 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj
index 4adeeb3970..d097dd1f3b 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj
index f74f7012d0..98659fb205 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
true
Library
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj
index 72815bbb76..b8f482e29d 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
true
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
index 927f724956..07a0ecdc5c 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs
index 0e3b229620..8b6c97be4c 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/SlugNormalizer.cs
@@ -7,7 +7,7 @@ public static class SlugNormalizer
{
static readonly SlugHelper SlugHelper = new(new SlugHelperConfiguration
{
- AllowedChars =
+ AllowedCharacters =
{
'/'
}
diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj
index 5724ccb86a..e68b2d9ac2 100644
--- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj
index fee3bcf3ab..7d5a0af344 100644
--- a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj
index 8713737078..bdf0f22ebe 100644
--- a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj
index 702c31f0b7..342c21858c 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Installer/Volo.CmsKit.Installer.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
true
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj
index 600d04ce18..969a05763e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs
index 69ad748307..17ff7e9f17 100644
--- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Tags/MongoTagRepository.cs
@@ -91,7 +91,7 @@ public class MongoTagRepository : MongoDbRepository new { x.Id, x.Name })
.ToListAsync(cancellationToken: GetCancellationToken(cancellationToken));
- var tagIds = tags.Select(x => x.Id);
+ var tagIds = tags.Select(x => x.Id).ToList();
var entityTagCounts = await (await GetQueryableAsync(cancellationToken))
.Where(q => tagIds.Contains(q.TagId))
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
index 18442a25c4..bb8278de7e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj
index cfda642b4f..8fa00ef055 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj
index a52f5b01d8..cf59c83865 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj
index 75e416d875..050b671885 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs
index 7cc8ac8c7d..e306f5dbef 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs
@@ -8,6 +8,7 @@ using Volo.Abp.DependencyInjection;
using Volo.Abp.Caching;
using Microsoft.Extensions.Caching.Distributed;
using ImageMagick;
+using ImageMagick.Drawing;
namespace Volo.CmsKit.Public.Web.Security.Captcha;
@@ -63,7 +64,7 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency
}
};
- await Cache.SetAsync(request.Output.Id.ToString("N"), request.Output, new DistributedCacheEntryOptions
+ await Cache.SetAsync(request.Output.Id.ToString("N"), request.Output, new DistributedCacheEntryOptions
{
AbsoluteExpiration = DateTimeOffset.Now.Add(options.DurationOfValidity)
});
@@ -79,8 +80,8 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency
public virtual async Task ValidateAsync(Guid requestId, int value)
{
var request = await Cache.GetAsync(requestId.ToString("N"));
-
- if(request == null || request.Result != value)
+
+ if(request == null || request.Result != value)
{
throw new UserFriendlyException(Localizer["CaptchaCodeErrorMessage"]);
}
@@ -103,11 +104,11 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency
try
{
var random = new Random();
-
+
var drawables = new Drawables()
.FontPointSize(options.FontSize)
.StrokeColor(MagickColors.Transparent);
-
+
var family = MagickNET.FontFamilies.FirstOrDefault();
if (!family.IsNullOrWhiteSpace())
{
@@ -115,7 +116,7 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency
}
var size = (ushort)(drawables.FontTypeMetrics(stringText)?.TextWidth ?? 0);
- using var image = new MagickImage(MagickColors.White, size + 15, options.Height);
+ using var image = new MagickImage(MagickColors.White, size + 15u, options.Height);
double position = 0;
var startWith = (byte)random.Next(5, 10);
@@ -139,34 +140,27 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency
Parallel.For(0, options.DrawLines, _ =>
{
- // ReSharper disable once AccessToDisposedClosure
- if (image is { IsDisposed: false })
- {
- var x0 = random.Next(0, random.Next(0, 30));
- var y0 = random.Next(10, image.Height);
-
- var x1 = random.Next(30, image.Width);
- var y1 = random.Next(0, image.Height);
-
- image.Draw(new Drawables()
- .StrokeColor(options.DrawLinesColor[random.Next(0, options.DrawLinesColor.Length)])
- .StrokeWidth(RandomTextGenerator.GenerateNextFloat(options.MinLineThickness,
- options.MaxLineThickness))
- .Line(x0, y0, x1, y1));
- }
+ var x0 = random.Next(0, random.Next(0, 30));
+ var y0 = random.Next(10, (int)image.Height);
+
+ var x1 = random.Next(30, (int)image.Width);
+ var y1 = random.Next(0, (int)image.Height);
+
+ image.Draw(new Drawables()
+ .StrokeColor(options.DrawLinesColor[random.Next(0, options.DrawLinesColor.Length)])
+ .StrokeWidth(RandomTextGenerator.GenerateNextFloat(options.MinLineThickness,
+ options.MaxLineThickness))
+ .Line(x0, y0, x1, y1));
});
Parallel.For(0, options.NoiseRate, _ =>
{
- if (image is { IsDisposed: false })
- {
- var x = random.Next(0, image.Width);
- var y = random.Next(0, image.Height);
- image.Draw(new Drawables()
- .FillColor(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)])
- .Point(x, y)
- );
- }
+ var x = random.Next(0, (int)image.Width);
+ var y = random.Next(0, (int)image.Height);
+ image.Draw(new Drawables()
+ .FillColor(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)])
+ .Point(x, y)
+ );
});
image.Resize(new MagickGeometry(options.Width, options.Height) { IgnoreAspectRatio = true });
@@ -186,4 +180,4 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency
return rotationDegrees;
}
-}
\ No newline at end of file
+}
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj
index 103f291d29..5d7d2ba74e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
true
Library
diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj
index 53b80f3ed8..f8327abe5e 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj
+++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj
@@ -4,7 +4,7 @@
- net9.0
+ net10.0
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
true
Library
diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj
index 400fcf237a..b142c53002 100644
--- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj
+++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj
index 7b9c185003..cb7adf786b 100644
--- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj
+++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
diff --git a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj
index 288da13edf..04a6e55260 100644
--- a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj
+++ b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
diff --git a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj
index c9aefb1d39..cde0230a07 100644
--- a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj
+++ b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0
Volo.CmsKit
diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj
index a537cf8943..dfa0e199b5 100644
--- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj
+++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj b/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj
index 4551360a30..b08025d5d6 100644
--- a/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj
+++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj
@@ -1,7 +1,7 @@
- net9.0
+ net10.0
Volo.CmsKit
diff --git a/modules/docs/Volo.Docs.sln b/modules/docs/Volo.Docs.sln
deleted file mode 100644
index af9282dca3..0000000000
--- a/modules/docs/Volo.Docs.sln
+++ /dev/null
@@ -1,235 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.28729.10
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{42416152-5BAB-4706-93A6-57A19E71FE14}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Domain.Shared", "src\Volo.Docs.Domain.Shared\Volo.Docs.Domain.Shared.csproj", "{ECE3F02A-3189-4159-A29C-D7C3D146DE36}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Domain", "src\Volo.Docs.Domain\Volo.Docs.Domain.csproj", "{AC02A635-260F-4FE9-9173-A7F8D7777263}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Application.Contracts", "src\Volo.Docs.Application.Contracts\Volo.Docs.Application.Contracts.csproj", "{E70D5691-90FF-44BF-BF16-152B161163D0}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Application", "src\Volo.Docs.Application\Volo.Docs.Application.csproj", "{B12622E8-20C7-44DB-8088-33844731469A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.EntityFrameworkCore", "src\Volo.Docs.EntityFrameworkCore\Volo.Docs.EntityFrameworkCore.csproj", "{2D35B1A4-6D22-454D-8C20-46CA7A74535E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.HttpApi", "src\Volo.Docs.HttpApi\Volo.Docs.HttpApi.csproj", "{30808C64-F590-47F7-AF8A-256F6B6E186B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.HttpApi.Client", "src\Volo.Docs.HttpApi.Client\Volo.Docs.HttpApi.Client.csproj", "{BF3FDDFF-BED8-422C-82E9-07F181A2D47F}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Web", "src\Volo.Docs.Web\Volo.Docs.Web.csproj", "{871FB966-C89F-4AF5-BB1D-172625AA571C}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "app", "app", "{555508AD-F593-43E3-9354-9FA51512F181}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "domain", "domain", "{A982A58E-1E92-4764-9F56-39E7AABB8556}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "admin-app", "admin-app", "{BCA19441-17E9-43E6-AED1-15344D18F967}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "public-app", "public-app", "{8B0CDFC9-E313-4323-9390-59CFFAAC60B5}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Admin.Application.Contracts", "src\Volo.Docs.Admin.Application.Contracts\Volo.Docs.Admin.Application.Contracts.csproj", "{37D483C8-400B-4127-A6D0-2EE4E80CB696}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Admin.Application", "src\Volo.Docs.Admin.Application\Volo.Docs.Admin.Application.csproj", "{823C51A7-40AB-45D8-8FB8-F212AF7E45F2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Admin.HttpApi", "src\Volo.Docs.Admin.HttpApi\Volo.Docs.Admin.HttpApi.csproj", "{262F38DB-62AF-427F-96E2-C6385C5AB695}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Admin.HttpApi.Client", "src\Volo.Docs.Admin.HttpApi.Client\Volo.Docs.Admin.HttpApi.Client.csproj", "{81EE378A-0DE1-47BA-86D9-08EF6317BB95}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Admin.Web", "src\Volo.Docs.Admin.Web\Volo.Docs.Admin.Web.csproj", "{116A6145-9D66-4867-B3EF-A464FAC47946}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{59D430A9-AC61-4457-8338-5DA0705ABB5D}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Application.Tests", "test\Volo.Docs.Application.Tests\Volo.Docs.Application.Tests.csproj", "{1BE0A197-55D0-40FF-A182-DBCF2E38D0C3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Domain.Tests", "test\Volo.Docs.Domain.Tests\Volo.Docs.Domain.Tests.csproj", "{213F44A8-F9C1-4F04-9159-37E232FF18F2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.EntityFrameworkCore.Tests", "test\Volo.Docs.EntityFrameworkCore.Tests\Volo.Docs.EntityFrameworkCore.Tests.csproj", "{89F895EA-C4A0-4D91-9181-016F78459776}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.TestBase", "test\Volo.Docs.TestBase\Volo.Docs.TestBase.csproj", "{C8BF652A-6DDF-4E5C-8CBA-BA5AFC50BFE2}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.Admin.Application.Tests", "test\Volo.Docs.Admin.Application.Tests\Volo.Docs.Admin.Application.Tests.csproj", "{E9CF69BC-EEA6-4621-BE0E-64EE37C89807}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoloDocs.EntityFrameworkCore", "app\VoloDocs.EntityFrameworkCore\VoloDocs.EntityFrameworkCore.csproj", "{1B459653-8DAC-41CD-A08E-28D6E74265D3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoloDocs.Web", "app\VoloDocs.Web\VoloDocs.Web.csproj", "{057EA924-4524-4452-840C-5E3D509F2ED3}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VoloDocs.Migrator", "app\VoloDocs.Migrator\VoloDocs.Migrator.csproj", "{8A5E5001-C017-44A8-ADDA-DC66C102556E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.MongoDB", "src\Volo.Docs.MongoDB\Volo.Docs.MongoDB.csproj", "{DBE846CD-1BED-4F2C-ABF2-94F6240BCB9B}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Docs.MongoDB.Tests", "test\Volo.Docs.MongoDB.Tests\Volo.Docs.MongoDB.Tests.csproj", "{C5E2A2A3-D54D-4C2E-97BA-EA50A49ED7AD}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Installer", "src\Volo.Docs.Installer\Volo.Docs.Installer.csproj", "{50B9AC1D-C03E-47AA-9ED8-E7986BCFABA1}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Common.Application", "src\Volo.Docs.Common.Application\Volo.Docs.Common.Application.csproj", "{914EDEC4-EFCE-46D5-B6E0-A928B1907307}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Common.Application.Contracts", "src\Volo.Docs.Common.Application.Contracts\Volo.Docs.Common.Application.Contracts.csproj", "{8CA19527-6870-4617-B6D1-EA8CAF224DF4}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{F778B2C3-2E6D-4CF3-ACA7-10E21E6A7961}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Common.HttpApi", "src\Volo.Docs.Common.HttpApi\Volo.Docs.Common.HttpApi.csproj", "{052C076D-56FF-4DFA-838B-48BD30A1DB0A}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Docs.Common.HttpApi.Client", "src\Volo.Docs.Common.HttpApi.Client\Volo.Docs.Common.HttpApi.Client.csproj", "{349C36A0-552D-44A3-AC74-03A4828D43AB}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {ECE3F02A-3189-4159-A29C-D7C3D146DE36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ECE3F02A-3189-4159-A29C-D7C3D146DE36}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ECE3F02A-3189-4159-A29C-D7C3D146DE36}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ECE3F02A-3189-4159-A29C-D7C3D146DE36}.Release|Any CPU.Build.0 = Release|Any CPU
- {AC02A635-260F-4FE9-9173-A7F8D7777263}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AC02A635-260F-4FE9-9173-A7F8D7777263}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AC02A635-260F-4FE9-9173-A7F8D7777263}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AC02A635-260F-4FE9-9173-A7F8D7777263}.Release|Any CPU.Build.0 = Release|Any CPU
- {E70D5691-90FF-44BF-BF16-152B161163D0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E70D5691-90FF-44BF-BF16-152B161163D0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E70D5691-90FF-44BF-BF16-152B161163D0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E70D5691-90FF-44BF-BF16-152B161163D0}.Release|Any CPU.Build.0 = Release|Any CPU
- {B12622E8-20C7-44DB-8088-33844731469A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B12622E8-20C7-44DB-8088-33844731469A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B12622E8-20C7-44DB-8088-33844731469A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B12622E8-20C7-44DB-8088-33844731469A}.Release|Any CPU.Build.0 = Release|Any CPU
- {2D35B1A4-6D22-454D-8C20-46CA7A74535E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2D35B1A4-6D22-454D-8C20-46CA7A74535E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2D35B1A4-6D22-454D-8C20-46CA7A74535E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2D35B1A4-6D22-454D-8C20-46CA7A74535E}.Release|Any CPU.Build.0 = Release|Any CPU
- {30808C64-F590-47F7-AF8A-256F6B6E186B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {30808C64-F590-47F7-AF8A-256F6B6E186B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {30808C64-F590-47F7-AF8A-256F6B6E186B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {30808C64-F590-47F7-AF8A-256F6B6E186B}.Release|Any CPU.Build.0 = Release|Any CPU
- {BF3FDDFF-BED8-422C-82E9-07F181A2D47F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {BF3FDDFF-BED8-422C-82E9-07F181A2D47F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {BF3FDDFF-BED8-422C-82E9-07F181A2D47F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {BF3FDDFF-BED8-422C-82E9-07F181A2D47F}.Release|Any CPU.Build.0 = Release|Any CPU
- {871FB966-C89F-4AF5-BB1D-172625AA571C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {871FB966-C89F-4AF5-BB1D-172625AA571C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {871FB966-C89F-4AF5-BB1D-172625AA571C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {871FB966-C89F-4AF5-BB1D-172625AA571C}.Release|Any CPU.Build.0 = Release|Any CPU
- {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {37D483C8-400B-4127-A6D0-2EE4E80CB696}.Release|Any CPU.Build.0 = Release|Any CPU
- {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {823C51A7-40AB-45D8-8FB8-F212AF7E45F2}.Release|Any CPU.Build.0 = Release|Any CPU
- {262F38DB-62AF-427F-96E2-C6385C5AB695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {262F38DB-62AF-427F-96E2-C6385C5AB695}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {262F38DB-62AF-427F-96E2-C6385C5AB695}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {262F38DB-62AF-427F-96E2-C6385C5AB695}.Release|Any CPU.Build.0 = Release|Any CPU
- {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {81EE378A-0DE1-47BA-86D9-08EF6317BB95}.Release|Any CPU.Build.0 = Release|Any CPU
- {116A6145-9D66-4867-B3EF-A464FAC47946}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {116A6145-9D66-4867-B3EF-A464FAC47946}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {116A6145-9D66-4867-B3EF-A464FAC47946}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {116A6145-9D66-4867-B3EF-A464FAC47946}.Release|Any CPU.Build.0 = Release|Any CPU
- {1BE0A197-55D0-40FF-A182-DBCF2E38D0C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1BE0A197-55D0-40FF-A182-DBCF2E38D0C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1BE0A197-55D0-40FF-A182-DBCF2E38D0C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1BE0A197-55D0-40FF-A182-DBCF2E38D0C3}.Release|Any CPU.Build.0 = Release|Any CPU
- {213F44A8-F9C1-4F04-9159-37E232FF18F2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {213F44A8-F9C1-4F04-9159-37E232FF18F2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {213F44A8-F9C1-4F04-9159-37E232FF18F2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {213F44A8-F9C1-4F04-9159-37E232FF18F2}.Release|Any CPU.Build.0 = Release|Any CPU
- {89F895EA-C4A0-4D91-9181-016F78459776}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {89F895EA-C4A0-4D91-9181-016F78459776}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {89F895EA-C4A0-4D91-9181-016F78459776}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {89F895EA-C4A0-4D91-9181-016F78459776}.Release|Any CPU.Build.0 = Release|Any CPU
- {C8BF652A-6DDF-4E5C-8CBA-BA5AFC50BFE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C8BF652A-6DDF-4E5C-8CBA-BA5AFC50BFE2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C8BF652A-6DDF-4E5C-8CBA-BA5AFC50BFE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C8BF652A-6DDF-4E5C-8CBA-BA5AFC50BFE2}.Release|Any CPU.Build.0 = Release|Any CPU
- {E9CF69BC-EEA6-4621-BE0E-64EE37C89807}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E9CF69BC-EEA6-4621-BE0E-64EE37C89807}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E9CF69BC-EEA6-4621-BE0E-64EE37C89807}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E9CF69BC-EEA6-4621-BE0E-64EE37C89807}.Release|Any CPU.Build.0 = Release|Any CPU
- {1B459653-8DAC-41CD-A08E-28D6E74265D3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1B459653-8DAC-41CD-A08E-28D6E74265D3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1B459653-8DAC-41CD-A08E-28D6E74265D3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1B459653-8DAC-41CD-A08E-28D6E74265D3}.Release|Any CPU.Build.0 = Release|Any CPU
- {057EA924-4524-4452-840C-5E3D509F2ED3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {057EA924-4524-4452-840C-5E3D509F2ED3}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {057EA924-4524-4452-840C-5E3D509F2ED3}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {057EA924-4524-4452-840C-5E3D509F2ED3}.Release|Any CPU.Build.0 = Release|Any CPU
- {8A5E5001-C017-44A8-ADDA-DC66C102556E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8A5E5001-C017-44A8-ADDA-DC66C102556E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8A5E5001-C017-44A8-ADDA-DC66C102556E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8A5E5001-C017-44A8-ADDA-DC66C102556E}.Release|Any CPU.Build.0 = Release|Any CPU
- {DBE846CD-1BED-4F2C-ABF2-94F6240BCB9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DBE846CD-1BED-4F2C-ABF2-94F6240BCB9B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DBE846CD-1BED-4F2C-ABF2-94F6240BCB9B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DBE846CD-1BED-4F2C-ABF2-94F6240BCB9B}.Release|Any CPU.Build.0 = Release|Any CPU
- {C5E2A2A3-D54D-4C2E-97BA-EA50A49ED7AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {C5E2A2A3-D54D-4C2E-97BA-EA50A49ED7AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {C5E2A2A3-D54D-4C2E-97BA-EA50A49ED7AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {C5E2A2A3-D54D-4C2E-97BA-EA50A49ED7AD}.Release|Any CPU.Build.0 = Release|Any CPU
- {50B9AC1D-C03E-47AA-9ED8-E7986BCFABA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {50B9AC1D-C03E-47AA-9ED8-E7986BCFABA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {50B9AC1D-C03E-47AA-9ED8-E7986BCFABA1}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {50B9AC1D-C03E-47AA-9ED8-E7986BCFABA1}.Release|Any CPU.Build.0 = Release|Any CPU
- {914EDEC4-EFCE-46D5-B6E0-A928B1907307}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {914EDEC4-EFCE-46D5-B6E0-A928B1907307}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {914EDEC4-EFCE-46D5-B6E0-A928B1907307}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {914EDEC4-EFCE-46D5-B6E0-A928B1907307}.Release|Any CPU.Build.0 = Release|Any CPU
- {8CA19527-6870-4617-B6D1-EA8CAF224DF4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8CA19527-6870-4617-B6D1-EA8CAF224DF4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8CA19527-6870-4617-B6D1-EA8CAF224DF4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8CA19527-6870-4617-B6D1-EA8CAF224DF4}.Release|Any CPU.Build.0 = Release|Any CPU
- {052C076D-56FF-4DFA-838B-48BD30A1DB0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {052C076D-56FF-4DFA-838B-48BD30A1DB0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {052C076D-56FF-4DFA-838B-48BD30A1DB0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {052C076D-56FF-4DFA-838B-48BD30A1DB0A}.Release|Any CPU.Build.0 = Release|Any CPU
- {349C36A0-552D-44A3-AC74-03A4828D43AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {349C36A0-552D-44A3-AC74-03A4828D43AB}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {349C36A0-552D-44A3-AC74-03A4828D43AB}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {349C36A0-552D-44A3-AC74-03A4828D43AB}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {ECE3F02A-3189-4159-A29C-D7C3D146DE36} = {A982A58E-1E92-4764-9F56-39E7AABB8556}
- {AC02A635-260F-4FE9-9173-A7F8D7777263} = {A982A58E-1E92-4764-9F56-39E7AABB8556}
- {E70D5691-90FF-44BF-BF16-152B161163D0} = {8B0CDFC9-E313-4323-9390-59CFFAAC60B5}
- {B12622E8-20C7-44DB-8088-33844731469A} = {8B0CDFC9-E313-4323-9390-59CFFAAC60B5}
- {2D35B1A4-6D22-454D-8C20-46CA7A74535E} = {A982A58E-1E92-4764-9F56-39E7AABB8556}
- {30808C64-F590-47F7-AF8A-256F6B6E186B} = {8B0CDFC9-E313-4323-9390-59CFFAAC60B5}
- {BF3FDDFF-BED8-422C-82E9-07F181A2D47F} = {8B0CDFC9-E313-4323-9390-59CFFAAC60B5}
- {871FB966-C89F-4AF5-BB1D-172625AA571C} = {8B0CDFC9-E313-4323-9390-59CFFAAC60B5}
- {A982A58E-1E92-4764-9F56-39E7AABB8556} = {42416152-5BAB-4706-93A6-57A19E71FE14}
- {BCA19441-17E9-43E6-AED1-15344D18F967} = {42416152-5BAB-4706-93A6-57A19E71FE14}
- {8B0CDFC9-E313-4323-9390-59CFFAAC60B5} = {42416152-5BAB-4706-93A6-57A19E71FE14}
- {37D483C8-400B-4127-A6D0-2EE4E80CB696} = {BCA19441-17E9-43E6-AED1-15344D18F967}
- {823C51A7-40AB-45D8-8FB8-F212AF7E45F2} = {BCA19441-17E9-43E6-AED1-15344D18F967}
- {262F38DB-62AF-427F-96E2-C6385C5AB695} = {BCA19441-17E9-43E6-AED1-15344D18F967}
- {81EE378A-0DE1-47BA-86D9-08EF6317BB95} = {BCA19441-17E9-43E6-AED1-15344D18F967}
- {116A6145-9D66-4867-B3EF-A464FAC47946} = {BCA19441-17E9-43E6-AED1-15344D18F967}
- {1BE0A197-55D0-40FF-A182-DBCF2E38D0C3} = {59D430A9-AC61-4457-8338-5DA0705ABB5D}
- {213F44A8-F9C1-4F04-9159-37E232FF18F2} = {59D430A9-AC61-4457-8338-5DA0705ABB5D}
- {89F895EA-C4A0-4D91-9181-016F78459776} = {59D430A9-AC61-4457-8338-5DA0705ABB5D}
- {C8BF652A-6DDF-4E5C-8CBA-BA5AFC50BFE2} = {59D430A9-AC61-4457-8338-5DA0705ABB5D}
- {E9CF69BC-EEA6-4621-BE0E-64EE37C89807} = {59D430A9-AC61-4457-8338-5DA0705ABB5D}
- {1B459653-8DAC-41CD-A08E-28D6E74265D3} = {555508AD-F593-43E3-9354-9FA51512F181}
- {057EA924-4524-4452-840C-5E3D509F2ED3} = {555508AD-F593-43E3-9354-9FA51512F181}
- {8A5E5001-C017-44A8-ADDA-DC66C102556E} = {555508AD-F593-43E3-9354-9FA51512F181}
- {DBE846CD-1BED-4F2C-ABF2-94F6240BCB9B} = {A982A58E-1E92-4764-9F56-39E7AABB8556}
- {C5E2A2A3-D54D-4C2E-97BA-EA50A49ED7AD} = {59D430A9-AC61-4457-8338-5DA0705ABB5D}
- {50B9AC1D-C03E-47AA-9ED8-E7986BCFABA1} = {A982A58E-1E92-4764-9F56-39E7AABB8556}
- {F778B2C3-2E6D-4CF3-ACA7-10E21E6A7961} = {42416152-5BAB-4706-93A6-57A19E71FE14}
- {914EDEC4-EFCE-46D5-B6E0-A928B1907307} = {F778B2C3-2E6D-4CF3-ACA7-10E21E6A7961}
- {8CA19527-6870-4617-B6D1-EA8CAF224DF4} = {F778B2C3-2E6D-4CF3-ACA7-10E21E6A7961}
- {052C076D-56FF-4DFA-838B-48BD30A1DB0A} = {F778B2C3-2E6D-4CF3-ACA7-10E21E6A7961}
- {349C36A0-552D-44A3-AC74-03A4828D43AB} = {F778B2C3-2E6D-4CF3-ACA7-10E21E6A7961}
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {13691265-2547-4FFF-B757-E8FACB05679D}
- EndGlobalSection
-EndGlobal
diff --git a/modules/docs/Volo.Docs.slnx b/modules/docs/Volo.Docs.slnx
new file mode 100644
index 0000000000..09216927c7
--- /dev/null
+++ b/modules/docs/Volo.Docs.slnx
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj
index f7a6f89231..1492f54702 100644
--- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj
+++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
diff --git a/modules/docs/app/VoloDocs.Migrator/Dockerfile b/modules/docs/app/VoloDocs.Migrator/Dockerfile
index 8f3dabcb5c..c28d55f0f6 100644
--- a/modules/docs/app/VoloDocs.Migrator/Dockerfile
+++ b/modules/docs/app/VoloDocs.Migrator/Dockerfile
@@ -1,9 +1,9 @@
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY . .
WORKDIR "/src/modules/docs/app/VoloDocs.Migrator"
diff --git a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj
index 9b66dec4ef..46e8617e36 100644
--- a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj
+++ b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
Exe
win-x64;linux-x64;osx-x64
diff --git a/modules/docs/app/VoloDocs.Web/Dockerfile b/modules/docs/app/VoloDocs.Web/Dockerfile
index c5b14533fd..f2cbcbc2e1 100644
--- a/modules/docs/app/VoloDocs.Web/Dockerfile
+++ b/modules/docs/app/VoloDocs.Web/Dockerfile
@@ -1,9 +1,9 @@
-FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base
+FROM mcr.microsoft.com/dotnet/aspnet:10.0 AS base
WORKDIR /app
EXPOSE 80
ENV ASPNETCORE_URLS=http://+:80
-FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build
+FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build
WORKDIR /src
COPY . .
WORKDIR "/src/modules/docs/app/VoloDocs.Web"
diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj
index 316f29f84c..31e944e8c7 100644
--- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj
+++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj
@@ -3,7 +3,7 @@
- net9.0
+ net10.0
true
true
false
diff --git a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
index a28da09273..327a26c6ae 100644
--- a/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
+++ b/modules/docs/app/VoloDocs.Web/VoloDocsWebModule.cs
@@ -72,7 +72,11 @@ namespace VoloDocs.Web
{
PreConfigure(options =>
{
- options.AddAssemblyResource(typeof(DocsResource), typeof(VoloDocsWebModule).Assembly);
+ options.AddAssemblyResource(
+ typeof(DocsResource),
+ typeof(VoloDocsWebModule).Assembly,
+ typeof(DocsAdminApplicationModule).Assembly
+ );
});
PreConfigure(options =>
diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj
index 796a4a83c4..a7722c5c99 100644
--- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj
+++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj
@@ -4,7 +4,7 @@
- netstandard2.0;netstandard2.1;net8.0;net9.0
+ netstandard2.0;netstandard2.1;net8.0;net9.0;net10.0
Volo.Docs.Admin.Application.Contracts
Volo.Docs.Admin.Application.Contracts
true
diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj
index f1eb4e09f3..9a61971adb 100644
--- a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj
+++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj
@@ -4,7 +4,7 @@
-