From 7c728614ea6f6a280f2da4cabdcfb39d93c623eb Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Sat, 18 Oct 2025 12:02:12 +0800 Subject: [PATCH] feat(NET10): add NET10 support (#6940) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * doc: 增加 nosnippet 标签 * chore: 增加脚本指纹 * chore: 增加 net10 依赖包 * doc: 增加 NotFound 路由 * chore: 更新网站运行时为 net10 * chore: 更新脚本版本 * refactor: 更改滚动条对齐方式 * chore: 增加 logs 目录自动创建脚本 * chore: 更改输出目录 * chore: 更改 dotnet 命令路径 * doc: 更新支持列表 * doc: 增加 NET10 支持列表 * chore: 更新 slnx 解决方案文件 * chore: 增加 AutoRestart 配置 * refactor: 移除配置项 * chore: 更新依赖包 * test: 更新单元测试 --- .github/workflows/auto-pull-request-checks.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/publish.yml | 2 +- Version.props | 2 +- scripts/linux/ba.blazor.service | 2 +- scripts/linux/deploy-blazor.sh | 2 +- scripts/linux/deploy.sh | 1 + .../Components/Components/BlazorReconnector.razor | 2 +- .../Components/Layout/ComponentLayout.razor.js | 2 +- .../Components/Pages/Install_Server.razor | 2 +- .../Components/Pages/Install_wasm.razor | 2 +- .../Components/Pages/NotFound.razor | 12 ++++++++++++ src/BootstrapBlazor.Server/Components/Routes.razor | 2 +- .../Components/Samples/Reconnectors.razor | 8 ++++---- src/BootstrapBlazor.Server/Locales/en-US.json | 2 +- src/BootstrapBlazor.Server/Locales/zh-CN.json | 2 +- src/BootstrapBlazor/Directory.Build.props | 13 ++++++++++++- test/UnitTest/Utils/UtilityTest.cs | 2 +- 18 files changed, 43 insertions(+), 19 deletions(-) create mode 100644 src/BootstrapBlazor.Server/Components/Pages/NotFound.razor diff --git a/.github/workflows/auto-pull-request-checks.yml b/.github/workflows/auto-pull-request-checks.yml index 52df4bc0f..9884c1c6b 100644 --- a/.github/workflows/auto-pull-request-checks.yml +++ b/.github/workflows/auto-pull-request-checks.yml @@ -17,7 +17,7 @@ jobs: - name: Setup .NET SDK uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Cache NuGet packages uses: actions/cache@v4 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7d6f96ba5..d6060be9b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,7 +16,7 @@ jobs: - name: Setup .NET Core SDK uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Cache NuGet packages uses: actions/cache@v4 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a5325a453..c2789f8cc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -15,7 +15,7 @@ jobs: - name: Setup .NET Core SDK uses: actions/setup-dotnet@v4 with: - dotnet-version: 9.0.x + dotnet-version: 10.0.x - name: Publish wasm run: | diff --git a/Version.props b/Version.props index fc5328d51..880090f88 100644 --- a/Version.props +++ b/Version.props @@ -1,7 +1,7 @@ - net9.0 + net10.0 diff --git a/scripts/linux/ba.blazor.service b/scripts/linux/ba.blazor.service index 15f58cd91..4d52f9d23 100644 --- a/scripts/linux/ba.blazor.service +++ b/scripts/linux/ba.blazor.service @@ -7,7 +7,7 @@ Description=Bootstrap Blazor Application Type=simple WorkingDirectory=/usr/local/ba/blazor Environment=ASPNETCORE_ENVIRONMENT=Production -ExecStart=/usr/bin/dotnet BootstrapBlazor.Server.dll --urls http://localhost:50853 +ExecStart=dotnet BootstrapBlazor.Server.dll --urls http://localhost:50853 ExecStop=/bin/kill -2 $MAINPID KillMode=process Restart=on-failure diff --git a/scripts/linux/deploy-blazor.sh b/scripts/linux/deploy-blazor.sh index cef4fd541..cdb3980f0 100644 --- a/scripts/linux/deploy-blazor.sh +++ b/scripts/linux/deploy-blazor.sh @@ -10,6 +10,6 @@ curl https://www.blazor.zone/api/dispatch?token=BootstrapBlazor-Reboot dotnet publish src/BootstrapBlazor.Server -c Release systemctl stop ba.blazor -\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.Server/bin/Release/net9.0/publish/* /usr/local/ba/blazor +\cp -fr ~/BootstrapBlazor/src/BootstrapBlazor.Server/bin/Release/net10.0/publish/* /usr/local/ba/blazor systemctl start ba.blazor systemctl status ba.blazor -l --no-pager diff --git a/scripts/linux/deploy.sh b/scripts/linux/deploy.sh index e0c59da74..bec807c25 100644 --- a/scripts/linux/deploy.sh +++ b/scripts/linux/deploy.sh @@ -27,6 +27,7 @@ sudo systemctl enable ba.blazor echo "*********************** install nginx ***********************" yes|sudo apt install nginx +mkdir /usr/share/nginx/logs echo "*********************** copy nginx config ***********************" sudo cp BootstrapBlazor/scripts/linux/nginx.conf /etc/nginx/ diff --git a/src/BootstrapBlazor.Server/Components/Components/BlazorReconnector.razor b/src/BootstrapBlazor.Server/Components/Components/BlazorReconnector.razor index 43dd006aa..80fbf499f 100644 --- a/src/BootstrapBlazor.Server/Components/Components/BlazorReconnector.razor +++ b/src/BootstrapBlazor.Server/Components/Components/BlazorReconnector.razor @@ -67,7 +67,7 @@

一套基于 Bootstrap 样式的企业级 Blazor UI 组件库,支持 Server 与 WebAssembly

-

适配移动端支持各种主流浏览器以及移动端,适配 ABP,同时支持 NET6/NET7/NET8/NET9

+

适配移动端支持各种主流浏览器以及移动端,适配 ABP,同时支持 NET6/NET7/NET8/NET9/NET10

已提供项目模板方便快速上手 项目模板
diff --git a/src/BootstrapBlazor.Server/Components/Layout/ComponentLayout.razor.js b/src/BootstrapBlazor.Server/Components/Layout/ComponentLayout.razor.js index 30e32516a..608d939d0 100644 --- a/src/BootstrapBlazor.Server/Components/Layout/ComponentLayout.razor.js +++ b/src/BootstrapBlazor.Server/Components/Layout/ComponentLayout.razor.js @@ -5,7 +5,7 @@ const el = document.querySelector(anchor) if (el) { const handler = setTimeout(() => { - el.scrollIntoView({ behavior: 'smooth', block: 'center' }) + el.scrollIntoView({ behavior: 'smooth', block: 'start' }) clearTimeout(handler) }, 1000) } diff --git a/src/BootstrapBlazor.Server/Components/Pages/Install_Server.razor b/src/BootstrapBlazor.Server/Components/Pages/Install_Server.razor index 519098b3b..060a2874c 100644 --- a/src/BootstrapBlazor.Server/Components/Pages/Install_Server.razor +++ b/src/BootstrapBlazor.Server/Components/Pages/Install_Server.razor @@ -21,7 +21,7 @@
    -
  • Program.cs NET6/NET7/NET8/NET9
  • +
  • Program.cs NET6/NET7/NET8/NET9/NET10

Startup.cs

namespace MyBlazorAppName
diff --git a/src/BootstrapBlazor.Server/Components/Pages/Install_wasm.razor b/src/BootstrapBlazor.Server/Components/Pages/Install_wasm.razor
index 173ce794e..51c4900f7 100644
--- a/src/BootstrapBlazor.Server/Components/Pages/Install_wasm.razor
+++ b/src/BootstrapBlazor.Server/Components/Pages/Install_wasm.razor
@@ -46,7 +46,7 @@ static async Task SetCultureAsync(WebAssemblyHost host)
     
     
         
    -
  • App.razor NET6/NET7/NET8/NET9
  • +
  • App.razor NET6/NET7/NET8/NET9/NET10
// NET6/NET7
diff --git a/src/BootstrapBlazor.Server/Components/Pages/NotFound.razor b/src/BootstrapBlazor.Server/Components/Pages/NotFound.razor
new file mode 100644
index 000000000..5a5c38f55
--- /dev/null
+++ b/src/BootstrapBlazor.Server/Components/Pages/NotFound.razor
@@ -0,0 +1,12 @@
+@page "/not-found"
+@layout MainLayout
+@inject NavigationManager NavigationManager
+
+@code {
+    protected override void OnInitialized()
+    {
+        base.OnInitialized();
+
+        NavigationManager.NavigateTo("/");
+    }
+}
diff --git a/src/BootstrapBlazor.Server/Components/Routes.razor b/src/BootstrapBlazor.Server/Components/Routes.razor
index bb2e405ae..14e276f21 100644
--- a/src/BootstrapBlazor.Server/Components/Routes.razor
+++ b/src/BootstrapBlazor.Server/Components/Routes.razor
@@ -1,4 +1,4 @@
-
+
     
         
         
diff --git a/src/BootstrapBlazor.Server/Components/Samples/Reconnectors.razor b/src/BootstrapBlazor.Server/Components/Samples/Reconnectors.razor
index 502d5cc71..0b20b294b 100644
--- a/src/BootstrapBlazor.Server/Components/Samples/Reconnectors.razor
+++ b/src/BootstrapBlazor.Server/Components/Samples/Reconnectors.razor
@@ -97,7 +97,7 @@
                 

基于 Bootstrap 样式的 Blazor UI 组件库

-

适配移动端支持各种主流浏览器,适配 ABP,同时支持 NET6/NET7/NET8/NET9,交流群 795206915

+

适配移动端支持各种主流浏览器,适配 ABP,同时支持 NET6/NET7/NET8/NET9/NET10,交流群 795206915

已提供项目模板方便快速上手 项目模板

@@ -126,7 +126,7 @@ <div class="d-flex"> <div class="flex-fill"> <div class="mb-2">基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</div> - <div class="mb-2">适配移动端支持各种主流浏览器,适配 <b>ABP</b>,同时支持 <b>NET6/NET7/NET8/NET9</b>,交流群 <b>795206915</b></div> + <div class="mb-2">适配移动端支持各种主流浏览器,适配 <b>ABP</b>,同时支持 <b>NET6/NET7/NET8/NET9/NET10</b>,交流群 <b>795206915</b></div> <div>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></div> </div> <div class="connection-body-tail d-none d-sm-block"></div> @@ -187,7 +187,7 @@ <div class="d-flex"> <div class="flex-fill"> <div class="mb-2">基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</div> - <div class="mb-2">适配移动端支持各种主流浏览器,适配 <b>ABP</b>,同时支持 <b>NET6/NET7/NET8/NET9</b>,交流群 <b>795206915</b></div> + <div class="mb-2">适配移动端支持各种主流浏览器,适配 <b>ABP</b>,同时支持 <b>NET6/NET7/NET8/NET9/NET10</b>,交流群 <b>795206915</b></div> <div>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></div> </div> <div class="connection-body-tail d-none d-sm-block"></div> @@ -248,7 +248,7 @@ <div class="d-flex"> <div class="flex-fill"> <div class="mb-2">基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</div> - <div class="mb-2">适配移动端支持各种主流浏览器,适配 <b>ABP</b>,同时支持 <b>NET6/NET7/NET8/NET9</b>,交流群 <b>795206915</b></div> + <div class="mb-2">适配移动端支持各种主流浏览器,适配 <b>ABP</b>,同时支持 <b>NET6/NET7/NET8/NET9/NET10</b>,交流群 <b>795206915</b></div> <div>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></div> </div> <div class="connection-body-tail d-none d-sm-block"></div> diff --git a/src/BootstrapBlazor.Server/Locales/en-US.json b/src/BootstrapBlazor.Server/Locales/en-US.json index 38474457e..6ad64c182 100644 --- a/src/BootstrapBlazor.Server/Locales/en-US.json +++ b/src/BootstrapBlazor.Server/Locales/en-US.json @@ -34,7 +34,7 @@ "CopiedText": "Copied" }, "BootstrapBlazor.Server.Components.Pages.Index": { - "Support": "Support NET6.0 & NET7.0 & NET8.0 & NET9.0", + "Support": "Support NET6.0 & NET7.0 & NET8.0 & NET9.0 & NET10.0", "Title": "Bootstrap Blazor UI", "SubTitle": "BootstrapBlazor is an enterprise-grade library that fuses Bootstrap with Blazor, offering developers a powerful toolkit for building responsive and interactive web applications effortlessly.", "Docs": "Read the docs", diff --git a/src/BootstrapBlazor.Server/Locales/zh-CN.json b/src/BootstrapBlazor.Server/Locales/zh-CN.json index 5e9eea1bf..1e3a21ccf 100644 --- a/src/BootstrapBlazor.Server/Locales/zh-CN.json +++ b/src/BootstrapBlazor.Server/Locales/zh-CN.json @@ -34,7 +34,7 @@ "CopiedText": "复制代码成功" }, "BootstrapBlazor.Server.Components.Pages.Index": { - "Support": "支持 NET6.0 & NET7.0 & NET8.0 & NET9.0", + "Support": "支持 NET6.0 & NET7.0 & NET8.0 & NET9.0 & NET10.0", "Title": "Bootstrap Blazor UI", "SubTitle": "BootstrapBlazor 是一套基于 Bootstrap 和 Blazor 的企业级组件库,无缝整合了 Bootstrap 框架与 Blazor 技术。它提供了一整套强大的工具,使开发者能够轻松创建响应式和交互式的 Web 应用程序。", "Docs": "阅读文档", diff --git a/src/BootstrapBlazor/Directory.Build.props b/src/BootstrapBlazor/Directory.Build.props index 46f7181c4..cdd40ac8d 100644 --- a/src/BootstrapBlazor/Directory.Build.props +++ b/src/BootstrapBlazor/Directory.Build.props @@ -17,7 +17,7 @@ - net6.0;net7.0;net8.0;net9.0 + net6.0;net7.0;net8.0;net9.0;net10.0 @@ -25,6 +25,7 @@ 7.0.* 8.0.* 9.0.* + 10.0.0-rc* @@ -69,6 +70,16 @@ + + + + + + + + + + diff --git a/test/UnitTest/Utils/UtilityTest.cs b/test/UnitTest/Utils/UtilityTest.cs index bfbf3d58a..a0ce8f0a1 100644 --- a/test/UnitTest/Utils/UtilityTest.cs +++ b/test/UnitTest/Utils/UtilityTest.cs @@ -393,7 +393,7 @@ public class UtilityTest : BootstrapBlazorTestBase var test1 = items.FirstOrDefault(i => i.Name == "Test-Null"); Assert.NotNull(test1); - Assert.Equal("", test1.Value); + Assert.Equal("Test-Null", test1.Value); var test2 = items.FirstOrDefault(i => i.Name == "Test-Key"); Assert.NotNull(test2);