feat(NET10): add NET10 support (#6940)

* 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: 更新单元测试
This commit is contained in:
Argo Zhang
2025-10-18 12:02:12 +08:00
committed by GitHub
parent a14b67e53d
commit 7c728614ea
18 changed files with 43 additions and 19 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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: |

View File

@@ -1,7 +1,7 @@
<Project>
<PropertyGroup>
<RunTargetFramework>net9.0</RunTargetFramework>
<RunTargetFramework>net10.0</RunTargetFramework>
</PropertyGroup>
</Project>

View File

@@ -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

View File

@@ -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

View File

@@ -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/

View File

@@ -67,7 +67,7 @@
<div class="d-flex">
<div class="flex-fill">
<p> <b>Bootstrap</b> <b>Blazor UI</b> Server WebAssembly</p>
<p> <b>ABP</b> <b>NET6/NET7/NET8/NET9</b></p>
<p> <b>ABP</b> <b>NET6/NET7/NET8/NET9/NET10</b></p>
<p></p>
<div>便 <a class="connection-link" href="@TemplateUrl" target="_blank"></a></div>
</div>

View File

@@ -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)
}

View File

@@ -21,7 +21,7 @@
</ScriptsTemplate>
<ServicesTemplate>
<ul class="ul-demo">
<li><code>Program.cs</code> <b>NET6/NET7/NET8/NET9</b></li>
<li><code>Program.cs</code> <b>NET6/NET7/NET8/NET9/NET10</b></li>
</ul>
<p><b>Startup.cs</b></p>
<Pre>namespace MyBlazorAppName

View File

@@ -46,7 +46,7 @@ static async Task SetCultureAsync(WebAssemblyHost host)
</ServicesTemplate>
<RootTemplate>
<ul class="ul-demo">
<li><code>App.razor</code> <b>NET6/NET7/NET8/NET9</b></li>
<li><code>App.razor</code> <b>NET6/NET7/NET8/NET9/NET10</b></li>
</ul>
<Pre>// NET6/NET7

View File

@@ -0,0 +1,12 @@
@page "/not-found"
@layout MainLayout
@inject NavigationManager NavigationManager
@code {
protected override void OnInitialized()
{
base.OnInitialized();
NavigationManager.NavigateTo("/");
}
}

View File

@@ -1,4 +1,4 @@
<Router AppAssembly="@typeof(Program).Assembly">
<Router AppAssembly="@typeof(Program).Assembly" NotFoundPage="typeof(Pages.NotFound)">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="routeData" Selector="h3" />

View File

@@ -97,7 +97,7 @@
<div class="d-flex">
<div class="flex-fill">
<p> <b>Bootstrap</b> <b>Blazor UI</b> </p>
<p> <b>ABP</b> <b>NET6/NET7/NET8/NET9</b> <b>795206915</b></p>
<p> <b>ABP</b> <b>NET6/NET7/NET8/NET9/NET10</b> <b>795206915</b></p>
<p>便 <a class="connection-link" href="@TemplateUrl"></a></p>
</div>
<div class="connection-body-tail d-none d-sm-block"></div>
@@ -126,7 +126,7 @@
&lt;div class="d-flex"&gt;
&lt;div class="flex-fill"&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;Bootstrap&lt;/b&gt; &lt;b&gt;Blazor UI&lt;/b&gt; &lt;/div&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;ABP&lt;/b&gt; &lt;b&gt;NET6/NET7/NET8/NET9&lt;/b&gt; &lt;b&gt;795206915&lt;/b&gt;&lt;/div&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;ABP&lt;/b&gt; &lt;b&gt;NET6/NET7/NET8/NET9/NET10&lt;/b&gt; &lt;b&gt;795206915&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;便 &lt;a class="connection-link" href="@TemplateUrl"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="connection-body-tail d-none d-sm-block"&gt;&lt;/div&gt;
@@ -187,7 +187,7 @@
&lt;div class="d-flex"&gt;
&lt;div class="flex-fill"&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;Bootstrap&lt;/b&gt; &lt;b&gt;Blazor UI&lt;/b&gt; &lt;/div&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;ABP&lt;/b&gt; &lt;b&gt;NET6/NET7/NET8/NET9&lt;/b&gt; &lt;b&gt;795206915&lt;/b&gt;&lt;/div&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;ABP&lt;/b&gt; &lt;b&gt;NET6/NET7/NET8/NET9/NET10&lt;/b&gt; &lt;b&gt;795206915&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;便 &lt;a class="connection-link" href="@TemplateUrl"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="connection-body-tail d-none d-sm-block"&gt;&lt;/div&gt;
@@ -248,7 +248,7 @@
&lt;div class="d-flex"&gt;
&lt;div class="flex-fill"&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;Bootstrap&lt;/b&gt; &lt;b&gt;Blazor UI&lt;/b&gt; &lt;/div&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;ABP&lt;/b&gt; &lt;b&gt;NET6/NET7/NET8/NET9&lt;/b&gt; &lt;b&gt;795206915&lt;/b&gt;&lt;/div&gt;
&lt;div class="mb-2"&gt; &lt;b&gt;ABP&lt;/b&gt; &lt;b&gt;NET6/NET7/NET8/NET9/NET10&lt;/b&gt; &lt;b&gt;795206915&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;便 &lt;a class="connection-link" href="@TemplateUrl"&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="connection-body-tail d-none d-sm-block"&gt;&lt;/div&gt;

View File

@@ -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",

View File

@@ -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": "阅读文档",

View File

@@ -17,7 +17,7 @@
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0</TargetFrameworks>
<TargetFrameworks>net6.0;net7.0;net8.0;net9.0;net10.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
@@ -25,6 +25,7 @@
<NET7Version>7.0.*</NET7Version>
<NET8Version>8.0.*</NET8Version>
<NET9Version>9.0.*</NET9Version>
<NET10Version>10.0.0-rc*</NET10Version>
</PropertyGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
@@ -69,6 +70,16 @@
<PackageReference Include="Microsoft.Extensions.Localization" Version="$(NET9Version)" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFramework)' == 'net10.0'">
<PackageReference Include="Microsoft.AspNetCore.Components.Authorization" Version="$(NET10Version)" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="$(NET10Version)" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="$(NET10Version)" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="$(NET10Version)" />
<PackageReference Include="Microsoft.Extensions.Http" Version="$(NET10Version)" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(NET10Version)" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="$(NET10Version)" />
</ItemGroup>
<ItemGroup>
<SupportedPlatform Include="browser" />
</ItemGroup>

View File

@@ -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);