diff --git a/.gitee/ISSUE_TEMPLATE/bug.yml b/.gitee/ISSUE_TEMPLATE/bug.yml
index 16113a51562839ba346cde7c7e1bb7eabf7705ad..457e05924ab907c95ec43b6cf51e59089c3989f9 100644
--- a/.gitee/ISSUE_TEMPLATE/bug.yml
+++ b/.gitee/ISSUE_TEMPLATE/bug.yml
@@ -13,7 +13,10 @@ body:
label: 版本号
description: 请选择项目使用的 Furion 版本?
options:
- - 4.9.4.7 (最新)
+ - 4.9.4.10 (最新)
+ - 4.9.4.9
+ - 4.9.4.8
+ - 4.9.4.7
- 4.9.4.6
- 4.9.4.5
- 4.9.4.4
diff --git a/framework/Directory.Build.props b/framework/Directory.Build.props
index 752e36119413652f245fb3dd59bc17ce47c267f4..5142f97602af893575b9c68708b2d63245185d1f 100644
--- a/framework/Directory.Build.props
+++ b/framework/Directory.Build.props
@@ -1,7 +1,7 @@
net5.0;net6.0;net7.0;net8.0;net9.0
- 4.9.4.7
+ 4.9.4.10
enable
百小僧
百签科技(广东)有限公司
diff --git a/framework/Furion.Extras.DatabaseAccessor.MongoDB/Furion.Extras.DatabaseAccessor.MongoDB.csproj b/framework/Furion.Extras.DatabaseAccessor.MongoDB/Furion.Extras.DatabaseAccessor.MongoDB.csproj
index cebdc4c0bf5dea96a7cda44c01be58a316e998a0..efa0724374e6880e11da7b3b27eef3e896e122ee 100644
--- a/framework/Furion.Extras.DatabaseAccessor.MongoDB/Furion.Extras.DatabaseAccessor.MongoDB.csproj
+++ b/framework/Furion.Extras.DatabaseAccessor.MongoDB/Furion.Extras.DatabaseAccessor.MongoDB.csproj
@@ -25,7 +25,7 @@
-
+
\ No newline at end of file
diff --git a/framework/Furion.Pure/App/Extensions/AppApplicationBuilderExtensions.cs b/framework/Furion.Pure/App/Extensions/AppApplicationBuilderExtensions.cs
index 21d8298c11c98dfd691a118e898457912e54d96d..ec1524be5b902b1510fb86293af4792f2d57417c 100644
--- a/framework/Furion.Pure/App/Extensions/AppApplicationBuilderExtensions.cs
+++ b/framework/Furion.Pure/App/Extensions/AppApplicationBuilderExtensions.cs
@@ -34,6 +34,24 @@ namespace Microsoft.AspNetCore.Builder;
[SuppressSniffer]
public static class AppApplicationBuilderExtensions
{
+#if !NET5_0
+ ///
+ /// 设置默认服务存储器
+ ///
+ ///
+ ///
+ /// 解决在主机启动前解析服务问题
+ /// 使用:var app = builder.Build().UseDefaultServiceProvider();
+ ///
+ ///
+ public static WebApplication UseDefaultServiceProvider(this WebApplication app)
+ {
+ InternalApp.RootServices ??= app.Services;
+
+ return app;
+ }
+#endif
+
///
/// 注入基础中间件(带Swagger)
///
@@ -41,7 +59,7 @@ public static class AppApplicationBuilderExtensions
/// 空字符串将为首页
///
/// 解决 Swagger 被代理问题
- ///
+ ///
public static IApplicationBuilder UseInject(this IApplicationBuilder app, string routePrefix = default, Action configure = null, bool withProxy = false)
{
// 载入中间件配置选项
@@ -59,7 +77,7 @@ public static class AppApplicationBuilderExtensions
///
///
/// 解决 Swagger 被代理问题
- ///
+ ///
public static IApplicationBuilder UseInject(this IApplicationBuilder app, Action configure, bool withProxy = false)
{
return app.UseInject(default, configure: configure, withProxy: withProxy);
@@ -79,7 +97,7 @@ public static class AppApplicationBuilderExtensions
/// 解决 .NET6 WebApplication 模式下二级虚拟目录错误问题
///
///
- ///
+ ///
public static IApplicationBuilder MapRouteControllers(this IApplicationBuilder app)
{
app.UseRouting();
@@ -96,7 +114,7 @@ public static class AppApplicationBuilderExtensions
///
/// 须在 app.UseRouting() 之前注册
///
- ///
+ ///
public static IApplicationBuilder EnableBuffering(this IApplicationBuilder app)
{
return app.Use(next => context =>
@@ -111,7 +129,7 @@ public static class AppApplicationBuilderExtensions
///
/// 应用构建器
/// 应用配置
- /// 应用构建器
+ ///
internal static IApplicationBuilder UseApp(this IApplicationBuilder app, Action configure = null)
{
// 调用自定义服务
diff --git a/framework/Furion.Pure/App/Filters/StartupFilter.cs b/framework/Furion.Pure/App/Filters/StartupFilter.cs
index 478db95ae6b8beff919cd74a5f2dd080798c6281..a29900b2821686a1c485bee9d95aac86d9285764 100644
--- a/framework/Furion.Pure/App/Filters/StartupFilter.cs
+++ b/framework/Furion.Pure/App/Filters/StartupFilter.cs
@@ -49,7 +49,7 @@ public class StartupFilter : IStartupFilter
return app =>
{
// 存储根服务
- InternalApp.RootServices = app.ApplicationServices;
+ InternalApp.RootServices ??= app.ApplicationServices;
// 环境名
var envName = App.HostEnvironment?.EnvironmentName ?? "Unknown";
diff --git a/framework/Furion.Pure/App/Startups/GenericHostLifetimeEventsHostedService.cs b/framework/Furion.Pure/App/Startups/GenericHostLifetimeEventsHostedService.cs
index 78a020bcf781b45c71951e5d85b8501377a4f01d..e6451d869e016f0c19fea47a0159d84a0791e384 100644
--- a/framework/Furion.Pure/App/Startups/GenericHostLifetimeEventsHostedService.cs
+++ b/framework/Furion.Pure/App/Startups/GenericHostLifetimeEventsHostedService.cs
@@ -39,7 +39,7 @@ internal class GenericHostLifetimeEventsHostedService : IHostedService
public GenericHostLifetimeEventsHostedService(IHost host)
{
// 存储根服务
- InternalApp.RootServices = host.Services;
+ InternalApp.RootServices ??= host.Services;
}
///
diff --git a/framework/Furion.Pure/JsonSerialization/JSON.cs b/framework/Furion.Pure/JsonSerialization/JSON.cs
index 019adb4b43087ee1baf4285e2d0b7cd5dbc06609..ce7bbb7f427fd92664803d0143e4bb88c09a3ab6 100644
--- a/framework/Furion.Pure/JsonSerialization/JSON.cs
+++ b/framework/Furion.Pure/JsonSerialization/JSON.cs
@@ -79,16 +79,17 @@ public static class JSON
///
/// 检查 JSON 字符串是否有效
///
- ///
+ /// JSON 字符串
+ /// 标准 JSON
///
- public static bool IsValid(string jsonString)
+ public static bool IsValid(string jsonString, bool standard = false)
{
if (string.IsNullOrWhiteSpace(jsonString)) return false;
try
{
using var document = JsonDocument.Parse(jsonString);
- return true;
+ return !standard || document.RootElement.ValueKind == JsonValueKind.Object || document.RootElement.ValueKind == JsonValueKind.Array;
}
catch (JsonException)
{
diff --git a/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartMethods.cs b/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartMethods.cs
index c1e44b7f8ec64473dcceb65f5bed9edaebec795e..6afb689316e18b0956993087f1d2548bab30bc5c 100644
--- a/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartMethods.cs
+++ b/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartMethods.cs
@@ -961,7 +961,10 @@ public sealed partial class HttpRequestPart
httpContent = new ByteArrayContent(Files[0].Bytes);
// 设置内容类型
- httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType);
+ httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType)
+ {
+ CharSet = ContentEncoding.BodyName
+ };
}
break;
@@ -976,7 +979,10 @@ public sealed partial class HttpRequestPart
httpContent = new StringContent(SerializerObject(Body), ContentEncoding);
// 设置内容类型
- httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType);
+ httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType)
+ {
+ CharSet = ContentEncoding.BodyName
+ };
}
break;
diff --git a/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartSetters.cs b/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartSetters.cs
index 90ce1cbd8f24f8b04160094b9dffeb11408dd4c1..e17816a6e827a815db82b42d703ba53956d9fb44 100644
--- a/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartSetters.cs
+++ b/framework/Furion.Pure/RemoteRequest/Internal/HttpRequestPartSetters.cs
@@ -192,7 +192,16 @@ public sealed partial class HttpRequestPart
///
public HttpRequestPart SetContentType(string contentType)
{
- if (!string.IsNullOrWhiteSpace(contentType)) ContentType = contentType;
+ if (!string.IsNullOrWhiteSpace(contentType))
+ {
+ // 处理 application/json;charset=utf-8,携带 charset 并非标准格式
+ if (contentType.Contains("charset", StringComparison.OrdinalIgnoreCase))
+ {
+ var parts = contentType.Split(';', StringSplitOptions.RemoveEmptyEntries);
+ if (parts.Length > 0) ContentType = parts[0];
+ }
+ else ContentType = contentType;
+ }
return this;
}
diff --git a/framework/Furion.Pure/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs b/framework/Furion.Pure/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs
index aa6f7f347b85a488b081c17a7da7c59dc3600782..8971b15dc1f94549786613443e5029255d045008 100644
--- a/framework/Furion.Pure/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs
+++ b/framework/Furion.Pure/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs
@@ -204,6 +204,8 @@ public sealed class UnitOfWorkAttribute : Attribute, IAsyncActionFilter, IAsyncP
// 打印工作单元开始消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Beginning (Ambient)");
+ logger.LogWarning("[Database Transaction] Starting a new transaction.");
+
// 开始事务
BeginTransaction(context, method, out var _unitOfWork, out var unitOfWorkAttribute);
@@ -218,6 +220,8 @@ public sealed class UnitOfWorkAttribute : Attribute, IAsyncActionFilter, IAsyncP
{
transactionScope?.Complete();
+ logger.LogWarning("[Database Transaction] Transaction committed successfully.");
+
// 打印事务提交消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Completed (Ambient)");
}
@@ -226,12 +230,12 @@ public sealed class UnitOfWorkAttribute : Attribute, IAsyncActionFilter, IAsyncP
// 打印事务回滚消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Rollback (Ambient)", isError: true);
- logger.LogError(resultContext.Exception, "Transaction Failed.");
+ logger.LogError(resultContext.Exception, "[Database Transaction] Transaction rolled back due to an error.");
}
}
catch (Exception ex)
{
- logger.LogError(ex, "Transaction Failed.");
+ logger.LogError(ex, "[Database Transaction] Transaction rolled back due to an error.");
// 打印事务回滚消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Rollback (Ambient)", isError: true);
diff --git a/framework/Furion/App/Extensions/AppApplicationBuilderExtensions.cs b/framework/Furion/App/Extensions/AppApplicationBuilderExtensions.cs
index 21d8298c11c98dfd691a118e898457912e54d96d..ec1524be5b902b1510fb86293af4792f2d57417c 100644
--- a/framework/Furion/App/Extensions/AppApplicationBuilderExtensions.cs
+++ b/framework/Furion/App/Extensions/AppApplicationBuilderExtensions.cs
@@ -34,6 +34,24 @@ namespace Microsoft.AspNetCore.Builder;
[SuppressSniffer]
public static class AppApplicationBuilderExtensions
{
+#if !NET5_0
+ ///
+ /// 设置默认服务存储器
+ ///
+ ///
+ ///
+ /// 解决在主机启动前解析服务问题
+ /// 使用:var app = builder.Build().UseDefaultServiceProvider();
+ ///
+ ///
+ public static WebApplication UseDefaultServiceProvider(this WebApplication app)
+ {
+ InternalApp.RootServices ??= app.Services;
+
+ return app;
+ }
+#endif
+
///
/// 注入基础中间件(带Swagger)
///
@@ -41,7 +59,7 @@ public static class AppApplicationBuilderExtensions
/// 空字符串将为首页
///
/// 解决 Swagger 被代理问题
- ///
+ ///
public static IApplicationBuilder UseInject(this IApplicationBuilder app, string routePrefix = default, Action configure = null, bool withProxy = false)
{
// 载入中间件配置选项
@@ -59,7 +77,7 @@ public static class AppApplicationBuilderExtensions
///
///
/// 解决 Swagger 被代理问题
- ///
+ ///
public static IApplicationBuilder UseInject(this IApplicationBuilder app, Action configure, bool withProxy = false)
{
return app.UseInject(default, configure: configure, withProxy: withProxy);
@@ -79,7 +97,7 @@ public static class AppApplicationBuilderExtensions
/// 解决 .NET6 WebApplication 模式下二级虚拟目录错误问题
///
///
- ///
+ ///
public static IApplicationBuilder MapRouteControllers(this IApplicationBuilder app)
{
app.UseRouting();
@@ -96,7 +114,7 @@ public static class AppApplicationBuilderExtensions
///
/// 须在 app.UseRouting() 之前注册
///
- ///
+ ///
public static IApplicationBuilder EnableBuffering(this IApplicationBuilder app)
{
return app.Use(next => context =>
@@ -111,7 +129,7 @@ public static class AppApplicationBuilderExtensions
///
/// 应用构建器
/// 应用配置
- /// 应用构建器
+ ///
internal static IApplicationBuilder UseApp(this IApplicationBuilder app, Action configure = null)
{
// 调用自定义服务
diff --git a/framework/Furion/App/Filters/StartupFilter.cs b/framework/Furion/App/Filters/StartupFilter.cs
index 478db95ae6b8beff919cd74a5f2dd080798c6281..a29900b2821686a1c485bee9d95aac86d9285764 100644
--- a/framework/Furion/App/Filters/StartupFilter.cs
+++ b/framework/Furion/App/Filters/StartupFilter.cs
@@ -49,7 +49,7 @@ public class StartupFilter : IStartupFilter
return app =>
{
// 存储根服务
- InternalApp.RootServices = app.ApplicationServices;
+ InternalApp.RootServices ??= app.ApplicationServices;
// 环境名
var envName = App.HostEnvironment?.EnvironmentName ?? "Unknown";
diff --git a/framework/Furion/App/Startups/GenericHostLifetimeEventsHostedService.cs b/framework/Furion/App/Startups/GenericHostLifetimeEventsHostedService.cs
index 78a020bcf781b45c71951e5d85b8501377a4f01d..e6451d869e016f0c19fea47a0159d84a0791e384 100644
--- a/framework/Furion/App/Startups/GenericHostLifetimeEventsHostedService.cs
+++ b/framework/Furion/App/Startups/GenericHostLifetimeEventsHostedService.cs
@@ -39,7 +39,7 @@ internal class GenericHostLifetimeEventsHostedService : IHostedService
public GenericHostLifetimeEventsHostedService(IHost host)
{
// 存储根服务
- InternalApp.RootServices = host.Services;
+ InternalApp.RootServices ??= host.Services;
}
///
diff --git a/framework/Furion/DatabaseAccessor/Extensions/PagedQueryableExtensions.cs b/framework/Furion/DatabaseAccessor/Extensions/PagedQueryableExtensions.cs
index 475b2130e781551015507f6cc8c41dc77ffb59fe..e755bcb8f96d2f70db46ee46fd335f969a14176d 100644
--- a/framework/Furion/DatabaseAccessor/Extensions/PagedQueryableExtensions.cs
+++ b/framework/Furion/DatabaseAccessor/Extensions/PagedQueryableExtensions.cs
@@ -40,12 +40,16 @@ public static class PagedQueryableExtensions
///
/// 页码,必须大于0
///
+ /// 总数计算方式
///
- public static PagedList ToPagedList(this IQueryable entities, int pageIndex = 1, int pageSize = 20)
+ public static PagedList ToPagedList(this IQueryable entities, int pageIndex = 1, int pageSize = 20, Func totalComputed = null)
{
if (pageIndex <= 0) throw new InvalidOperationException($"{nameof(pageIndex)} must be a positive integer greater than 0.");
- var totalCount = entities.Count();
+ var totalCount = totalComputed == null
+ ? entities.Count()
+ : totalComputed();
+
var items = entities.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList();
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
@@ -69,12 +73,16 @@ public static class PagedQueryableExtensions
/// 页码,必须大于0
///
///
+ /// 总数计算方式
///
- public static async Task> ToPagedListAsync(this IQueryable entities, int pageIndex = 1, int pageSize = 20, CancellationToken cancellationToken = default)
+ public static async Task> ToPagedListAsync(this IQueryable entities, int pageIndex = 1, int pageSize = 20, CancellationToken cancellationToken = default, Func totalComputed = null)
{
if (pageIndex <= 0) throw new InvalidOperationException($"{nameof(pageIndex)} must be a positive integer greater than 0.");
- var totalCount = await entities.CountAsync(cancellationToken);
+ var totalCount = totalComputed == null
+ ? (await entities.CountAsync(cancellationToken))
+ : totalComputed();
+
var items = await entities.Skip((pageIndex - 1) * pageSize).Take(pageSize).ToListAsync(cancellationToken);
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
diff --git a/framework/Furion/JsonSerialization/JSON.cs b/framework/Furion/JsonSerialization/JSON.cs
index 019adb4b43087ee1baf4285e2d0b7cd5dbc06609..ce7bbb7f427fd92664803d0143e4bb88c09a3ab6 100644
--- a/framework/Furion/JsonSerialization/JSON.cs
+++ b/framework/Furion/JsonSerialization/JSON.cs
@@ -79,16 +79,17 @@ public static class JSON
///
/// 检查 JSON 字符串是否有效
///
- ///
+ /// JSON 字符串
+ /// 标准 JSON
///
- public static bool IsValid(string jsonString)
+ public static bool IsValid(string jsonString, bool standard = false)
{
if (string.IsNullOrWhiteSpace(jsonString)) return false;
try
{
using var document = JsonDocument.Parse(jsonString);
- return true;
+ return !standard || document.RootElement.ValueKind == JsonValueKind.Object || document.RootElement.ValueKind == JsonValueKind.Array;
}
catch (JsonException)
{
diff --git a/framework/Furion/RemoteRequest/Internal/HttpRequestPartMethods.cs b/framework/Furion/RemoteRequest/Internal/HttpRequestPartMethods.cs
index c1e44b7f8ec64473dcceb65f5bed9edaebec795e..6afb689316e18b0956993087f1d2548bab30bc5c 100644
--- a/framework/Furion/RemoteRequest/Internal/HttpRequestPartMethods.cs
+++ b/framework/Furion/RemoteRequest/Internal/HttpRequestPartMethods.cs
@@ -961,7 +961,10 @@ public sealed partial class HttpRequestPart
httpContent = new ByteArrayContent(Files[0].Bytes);
// 设置内容类型
- httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType);
+ httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType)
+ {
+ CharSet = ContentEncoding.BodyName
+ };
}
break;
@@ -976,7 +979,10 @@ public sealed partial class HttpRequestPart
httpContent = new StringContent(SerializerObject(Body), ContentEncoding);
// 设置内容类型
- httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType);
+ httpContent.Headers.ContentType = new MediaTypeHeaderValue(ContentType)
+ {
+ CharSet = ContentEncoding.BodyName
+ };
}
break;
diff --git a/framework/Furion/RemoteRequest/Internal/HttpRequestPartSetters.cs b/framework/Furion/RemoteRequest/Internal/HttpRequestPartSetters.cs
index 90ce1cbd8f24f8b04160094b9dffeb11408dd4c1..e17816a6e827a815db82b42d703ba53956d9fb44 100644
--- a/framework/Furion/RemoteRequest/Internal/HttpRequestPartSetters.cs
+++ b/framework/Furion/RemoteRequest/Internal/HttpRequestPartSetters.cs
@@ -192,7 +192,16 @@ public sealed partial class HttpRequestPart
///
public HttpRequestPart SetContentType(string contentType)
{
- if (!string.IsNullOrWhiteSpace(contentType)) ContentType = contentType;
+ if (!string.IsNullOrWhiteSpace(contentType))
+ {
+ // 处理 application/json;charset=utf-8,携带 charset 并非标准格式
+ if (contentType.Contains("charset", StringComparison.OrdinalIgnoreCase))
+ {
+ var parts = contentType.Split(';', StringSplitOptions.RemoveEmptyEntries);
+ if (parts.Length > 0) ContentType = parts[0];
+ }
+ else ContentType = contentType;
+ }
return this;
}
diff --git a/framework/Furion/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs b/framework/Furion/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs
index aa6f7f347b85a488b081c17a7da7c59dc3600782..8971b15dc1f94549786613443e5029255d045008 100644
--- a/framework/Furion/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs
+++ b/framework/Furion/UnitOfWork/FilterAttributes/UnitOfWorkAttribute.cs
@@ -204,6 +204,8 @@ public sealed class UnitOfWorkAttribute : Attribute, IAsyncActionFilter, IAsyncP
// 打印工作单元开始消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Beginning (Ambient)");
+ logger.LogWarning("[Database Transaction] Starting a new transaction.");
+
// 开始事务
BeginTransaction(context, method, out var _unitOfWork, out var unitOfWorkAttribute);
@@ -218,6 +220,8 @@ public sealed class UnitOfWorkAttribute : Attribute, IAsyncActionFilter, IAsyncP
{
transactionScope?.Complete();
+ logger.LogWarning("[Database Transaction] Transaction committed successfully.");
+
// 打印事务提交消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Completed (Ambient)");
}
@@ -226,12 +230,12 @@ public sealed class UnitOfWorkAttribute : Attribute, IAsyncActionFilter, IAsyncP
// 打印事务回滚消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Rollback (Ambient)", isError: true);
- logger.LogError(resultContext.Exception, "Transaction Failed.");
+ logger.LogError(resultContext.Exception, "[Database Transaction] Transaction rolled back due to an error.");
}
}
catch (Exception ex)
{
- logger.LogError(ex, "Transaction Failed.");
+ logger.LogError(ex, "[Database Transaction] Transaction rolled back due to an error.");
// 打印事务回滚消息
if (UseAmbientTransaction) App.PrintToMiniProfiler(MiniProfilerCategory, "Rollback (Ambient)", isError: true);
diff --git a/samples/Furion.Core/Furion.Core.csproj b/samples/Furion.Core/Furion.Core.csproj
index 5704de0dce6afec03debab52a2bf9c3bea53e412..335177bc84ee90faa0f83582d2a65c1bb22ac9f3 100644
--- a/samples/Furion.Core/Furion.Core.csproj
+++ b/samples/Furion.Core/Furion.Core.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/samples/Furion.Web.Core/Startup.cs b/samples/Furion.Web.Core/Startup.cs
index c88737013b18bf7299cb8eba8535fbe1541fe98e..734b46f52026968f8889a5b4d37dfc1b7b8c740b 100644
--- a/samples/Furion.Web.Core/Startup.cs
+++ b/samples/Furion.Web.Core/Startup.cs
@@ -146,6 +146,7 @@ public sealed class Startup : AppStartup
{
ContentTypeProvider = FS.GetFileExtensionContentTypeProvider()
});
+
app.UseScheduleUI(options =>
{
});
diff --git a/templates/FurionApiTemplate/Furion.Template.Api.nuspec b/templates/FurionApiTemplate/Furion.Template.Api.nuspec
index 9f5a348d9cc3288f05dde9c47b660beffcbf082c..173ead1461e4b6962185fbd4bde235b005abd12e 100644
--- a/templates/FurionApiTemplate/Furion.Template.Api.nuspec
+++ b/templates/FurionApiTemplate/Furion.Template.Api.nuspec
@@ -2,7 +2,7 @@
Furion.Template.Api
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Api 多层架构模板。
百小僧
diff --git a/templates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj b/templates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj
index 9ecb85acf8e1da8852227f8284c6548e0e62c59e..7ad4a09174963f7b7e1d3020209f7819cc892bc0 100644
--- a/templates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj
+++ b/templates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/FurionAppTemplate/Furion.Template.App.nuspec b/templates/FurionAppTemplate/Furion.Template.App.nuspec
index 13e7fe1715ec03d4fca8cc77e4209f5f3f268be7..85e303daf912dbca117278d0a3a6ee39a9b40ee5 100644
--- a/templates/FurionAppTemplate/Furion.Template.App.nuspec
+++ b/templates/FurionAppTemplate/Furion.Template.App.nuspec
@@ -2,7 +2,7 @@
Furion.Template.App
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Mvc/Api 多层架构模板。
百小僧
diff --git a/templates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj b/templates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj
index 1217672136dfaf08fbf5eb98b2befd928e482ec0..1fa784e7119351f27f8232d0b06972cd4a40a896 100644
--- a/templates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj
+++ b/templates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/FurionBlazorAppTemplate/Furion.Template.Blazor.App.nuspec b/templates/FurionBlazorAppTemplate/Furion.Template.Blazor.App.nuspec
index 96144129c6acd99b0689da8fde7f92e50625bb4f..0fcb7528a3a240dc76a2a91bc39bf60131bb86e3 100644
--- a/templates/FurionBlazorAppTemplate/Furion.Template.Blazor.App.nuspec
+++ b/templates/FurionBlazorAppTemplate/Furion.Template.Blazor.App.nuspec
@@ -2,7 +2,7 @@
Furion.Template.Blazor.App
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Blazor App 多层架构模板。
百小僧
diff --git a/templates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj b/templates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj
index 0932ca490426d9973fb4925af44338140005c3f6..59a61ce441f6f23c0d9eed72979a1d25250a3a0c 100644
--- a/templates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj
+++ b/templates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/templates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec b/templates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec
index a03e22527e5f4902a49b86ca813822df60011f9b..031c06fcb6757eb80466094143b3a879cdf298a3 100644
--- a/templates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec
+++ b/templates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec
@@ -2,7 +2,7 @@
Furion.Template.Blazor
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Blazor 多层架构模板。
百小僧
diff --git a/templates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj b/templates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj
index fe14a07226b16fc81cb365837b72baf4a96b0b9e..374dd016a415614be600975a1908b3fc59570487 100644
--- a/templates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj
+++ b/templates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/templates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec b/templates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec
index 3c6ebc37f8ecb5229a8b8e533a2d64b866e5e3b2..e6b9ac203c2b78661c62c5193b5237e8e34c3f8a 100644
--- a/templates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec
+++ b/templates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec
@@ -2,7 +2,7 @@
Furion.Template.BlazorWithWebApi
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Blazor和WebApi 多层架构模板。
百小僧
diff --git a/templates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj b/templates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj
index 40666fe5de86e7b42edd95d87c01a8bb0b812512..92fff51b80da370e9349d512db4c22fa9b6e9f45 100644
--- a/templates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj
+++ b/templates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/FurionMvcTemplate/Furion.Template.Mvc.nuspec b/templates/FurionMvcTemplate/Furion.Template.Mvc.nuspec
index fb0ce9c8b6c7cd29b00bf00fd2f1b3c00bd4b8b6..acfaf356b138ecdab37f06c4208c53120a83014a 100644
--- a/templates/FurionMvcTemplate/Furion.Template.Mvc.nuspec
+++ b/templates/FurionMvcTemplate/Furion.Template.Mvc.nuspec
@@ -2,7 +2,7 @@
Furion.Template.Mvc
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Mvc 多层架构模板。
百小僧
diff --git a/templates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj b/templates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj
index fe14a07226b16fc81cb365837b72baf4a96b0b9e..374dd016a415614be600975a1908b3fc59570487 100644
--- a/templates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj
+++ b/templates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/templates/FurionRazorTemplate/Furion.Template.Razor.nuspec b/templates/FurionRazorTemplate/Furion.Template.Razor.nuspec
index 1d92c07e1332ba6594e1a37ec5499b9e7a77e704..5245993e67409b2fb7e676e24e22c7be49093295 100644
--- a/templates/FurionRazorTemplate/Furion.Template.Razor.nuspec
+++ b/templates/FurionRazorTemplate/Furion.Template.Razor.nuspec
@@ -2,7 +2,7 @@
Furion.Template.Razor
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 Razor Pages 多层架构模板。
百小僧
diff --git a/templates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj b/templates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj
index fe14a07226b16fc81cb365837b72baf4a96b0b9e..374dd016a415614be600975a1908b3fc59570487 100644
--- a/templates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj
+++ b/templates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/templates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec b/templates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec
index e0bc0ab00466b9cb048e7fffc7dfbc175da975c1..8dbf54c00be829d7aa27d89aaa261dfe883f3195 100644
--- a/templates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec
+++ b/templates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec
@@ -2,7 +2,7 @@
Furion.Template.RazorWithWebApi
- 4.9.4.7
+ 4.9.4.10
基于 Furion 框架快速搭建 RazorPages和WebApi 多层架构模板。
百小僧
diff --git a/templates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj b/templates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj
index f31ebbc98a9b98289eeb3bfa17dc28574e84c064..a8004cfddaab4cb2a170e5052df1e255f7f95e77 100644
--- a/templates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj
+++ b/templates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/SqlSugarTemplates/FurionApiTemplate/Furion.Template.Api.nuspec b/templates/SqlSugarTemplates/FurionApiTemplate/Furion.Template.Api.nuspec
index 71a36e24db6e7f89cfaf160c7ef9f21412d64d41..ecde60babde002382208d8cd7e92e46e76c2e0a1 100644
--- a/templates/SqlSugarTemplates/FurionApiTemplate/Furion.Template.Api.nuspec
+++ b/templates/SqlSugarTemplates/FurionApiTemplate/Furion.Template.Api.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.Api
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Api 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj b/templates/SqlSugarTemplates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj
index 58f17d3224095b03e8cc4588ba8d546868c6f86c..f556ea1ac7d11414933d74499070cb970d81d43b 100644
--- a/templates/SqlSugarTemplates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionApiTemplate/src/FurionApi.Core/FurionApi.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/SqlSugarTemplates/FurionAppTemplate/Furion.Template.App.nuspec b/templates/SqlSugarTemplates/FurionAppTemplate/Furion.Template.App.nuspec
index 3105651e415e969b17e095f754ca27a63b976a31..7f262cf6d587a0a8f7af9c914ecce152ecb17e83 100644
--- a/templates/SqlSugarTemplates/FurionAppTemplate/Furion.Template.App.nuspec
+++ b/templates/SqlSugarTemplates/FurionAppTemplate/Furion.Template.App.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.App
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Mvc/Api 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj b/templates/SqlSugarTemplates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj
index ac847e4138d0e0a465a0d82b379b3eddf6f58057..604600695efe40a417d12b7483d7086ac8d9d89a 100644
--- a/templates/SqlSugarTemplates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionAppTemplate/src/FurionApp.Core/FurionApp.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/SqlSugarTemplates/FurionBlazorAppTemplate/Furion.SqlSugar.Template.Blazor.App.nuspec b/templates/SqlSugarTemplates/FurionBlazorAppTemplate/Furion.SqlSugar.Template.Blazor.App.nuspec
index 706f8f03b3c14b8061a6e8a5b8cbafc9acb08b34..1d7664f5f956052512409856217cc782b0359050 100644
--- a/templates/SqlSugarTemplates/FurionBlazorAppTemplate/Furion.SqlSugar.Template.Blazor.App.nuspec
+++ b/templates/SqlSugarTemplates/FurionBlazorAppTemplate/Furion.SqlSugar.Template.Blazor.App.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.Blazor.App
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Blazor App 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj b/templates/SqlSugarTemplates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj
index 8c590a21118023093415f485754027f7a9013ed7..cedc5c263f55e5a4f6df65a1736b9c90d76bd5ef 100644
--- a/templates/SqlSugarTemplates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionBlazorAppTemplate/src/FurionBlazorApp.Core/FurionBlazorApp.Core.csproj
@@ -11,9 +11,9 @@
-
+
-
+
diff --git a/templates/SqlSugarTemplates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec b/templates/SqlSugarTemplates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec
index 87e703786ce34214e7ff4133c3d34aedce704c0a..533738991873273fac62d63d73eadfafaa487637 100644
--- a/templates/SqlSugarTemplates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec
+++ b/templates/SqlSugarTemplates/FurionBlazorTemplate/Furion.Template.Blazor.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.Blazor
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Blazor 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj b/templates/SqlSugarTemplates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj
index 5a29494bb16962203147f5a3d79a8671ed307e90..1c02e21c96428da9a85894d23eabbf6431147709 100644
--- a/templates/SqlSugarTemplates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionBlazorTemplate/src/FurionBlazor.Core/FurionBlazor.Core.csproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec b/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec
index b5824bca1563dc94641029b0d5c5e155c573a886..0ffea114685924c866d2cf0509f08ce01daf375e 100644
--- a/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec
+++ b/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/Furion.Template.BlazorWithWebApi.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.BlazorWithWebApi
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Blazor和WebApi 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj b/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj
index e159c25598a35c32939723cbeea7bcf6aa24227c..1c3ad7e2a0f0897b00035d89f31767225a3aaf99 100644
--- a/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionBlazorWithWebApiTemplate/src/FurionBlazorApi.Core/FurionBlazorApi.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/templates/SqlSugarTemplates/FurionMvcTemplate/Furion.Template.Mvc.nuspec b/templates/SqlSugarTemplates/FurionMvcTemplate/Furion.Template.Mvc.nuspec
index a5b19f3050d8c5ea99cd851a53b07f7eca6d9b49..6de680442f36d9d999c0c839575cd9a9865863f8 100644
--- a/templates/SqlSugarTemplates/FurionMvcTemplate/Furion.Template.Mvc.nuspec
+++ b/templates/SqlSugarTemplates/FurionMvcTemplate/Furion.Template.Mvc.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.Mvc
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Mvc 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj b/templates/SqlSugarTemplates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj
index 5a29494bb16962203147f5a3d79a8671ed307e90..1c02e21c96428da9a85894d23eabbf6431147709 100644
--- a/templates/SqlSugarTemplates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionMvcTemplate/src/FurionMvc.Core/FurionMvc.Core.csproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/templates/SqlSugarTemplates/FurionRazorTemplate/Furion.Template.Razor.nuspec b/templates/SqlSugarTemplates/FurionRazorTemplate/Furion.Template.Razor.nuspec
index eb0d2a5a7545dd14b714250ec7e97a20dcf5c5a0..5e716d906ff5b277d0c12e924cc687c11b63d7bc 100644
--- a/templates/SqlSugarTemplates/FurionRazorTemplate/Furion.Template.Razor.nuspec
+++ b/templates/SqlSugarTemplates/FurionRazorTemplate/Furion.Template.Razor.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.Razor
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 Razor Pages 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj b/templates/SqlSugarTemplates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj
index 5a29494bb16962203147f5a3d79a8671ed307e90..1c02e21c96428da9a85894d23eabbf6431147709 100644
--- a/templates/SqlSugarTemplates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionRazorTemplate/src/FurionRazor.Core/FurionRazor.Core.csproj
@@ -27,8 +27,8 @@
-
-
+
+
diff --git a/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec b/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec
index 697d1e4ae1720f5d891b822f106c3fd178cc8ec5..d059b47ae4dd99401de3c9c0598bfd7298dac304 100644
--- a/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec
+++ b/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/Furion.Template.RazorWithWebApi.nuspec
@@ -2,7 +2,7 @@
Furion.SqlSugar.Template.RazorWithWebApi
- 4.9.4.7
+ 4.9.4.10
基于 Furion 和 SqlSugar 框架快速搭建 RazorPages和WebApi 多层架构模板。
百小僧
diff --git a/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj b/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj
index 4e926a579248a8edc44000a03caa14b4b614fa86..cdc50cfa5c6c7522852ac1225acc1e209e07d27b 100644
--- a/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj
+++ b/templates/SqlSugarTemplates/FurionRazorWithWebApiTemplate/src/FurionRazorApi.Core/FurionRazorApi.Core.csproj
@@ -36,9 +36,9 @@
-
-
-
+
+
+
diff --git a/tools/Furion.Tools/Directory.Build.props b/tools/Furion.Tools/Directory.Build.props
index cf9d835799cc2b9f7b3bb5526d81bf42cbbfa2b7..3762ecf3c1a6577f5ca081de5e33396f2f21336a 100644
--- a/tools/Furion.Tools/Directory.Build.props
+++ b/tools/Furion.Tools/Directory.Build.props
@@ -1,7 +1,7 @@
net5.0;net6.0;net7.0;net8.0;net9.0
- 4.9.4.7
+ 4.9.4.10
enable
百小僧
百签科技(广东)有限公司
diff --git a/tools/Furion.Tools/Furion.Tools/Furion.Tools.csproj b/tools/Furion.Tools/Furion.Tools/Furion.Tools.csproj
index 5d4812fb1344e921089b05fe627482c7c487d47b..d26f8a15cbf265b6529fea93507bced496a92857 100644
--- a/tools/Furion.Tools/Furion.Tools/Furion.Tools.csproj
+++ b/tools/Furion.Tools/Furion.Tools/Furion.Tools.csproj
@@ -7,7 +7,7 @@
-
+
\ No newline at end of file
diff --git a/tools/cli.ps1 b/tools/cli.ps1
index a44ffa18087138f7476e161a71da64892a733941..c24214a58a62455dd49e8545e292d3ec5402b5f9 100644
--- a/tools/cli.ps1
+++ b/tools/cli.ps1
@@ -24,7 +24,7 @@ Param(
#[string]$UseDatabaseNames
)
-$FurTools = "Furion Tools v4.9.4.7";
+$FurTools = "Furion Tools v4.9.4.10";
# 输出信息
$copyright = @"