mirror of
https://gitee.com/LongbowEnterprise/BootstrapBlazor.git
synced 2025-12-06 07:28:50 +08:00
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:
@@ -17,7 +17,7 @@ jobs:
|
|||||||
- name: Setup .NET SDK
|
- name: Setup .NET SDK
|
||||||
uses: actions/setup-dotnet@v4
|
uses: actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: 9.0.x
|
dotnet-version: 10.0.x
|
||||||
|
|
||||||
- name: Cache NuGet packages
|
- name: Cache NuGet packages
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
|
|||||||
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
- name: Setup .NET Core SDK
|
- name: Setup .NET Core SDK
|
||||||
uses: actions/setup-dotnet@v4
|
uses: actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: 9.0.x
|
dotnet-version: 10.0.x
|
||||||
|
|
||||||
- name: Cache NuGet packages
|
- name: Cache NuGet packages
|
||||||
uses: actions/cache@v4
|
uses: actions/cache@v4
|
||||||
|
|||||||
2
.github/workflows/publish.yml
vendored
2
.github/workflows/publish.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
|||||||
- name: Setup .NET Core SDK
|
- name: Setup .NET Core SDK
|
||||||
uses: actions/setup-dotnet@v4
|
uses: actions/setup-dotnet@v4
|
||||||
with:
|
with:
|
||||||
dotnet-version: 9.0.x
|
dotnet-version: 10.0.x
|
||||||
|
|
||||||
- name: Publish wasm
|
- name: Publish wasm
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
<Project>
|
<Project>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<RunTargetFramework>net9.0</RunTargetFramework>
|
<RunTargetFramework>net10.0</RunTargetFramework>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Description=Bootstrap Blazor Application
|
|||||||
Type=simple
|
Type=simple
|
||||||
WorkingDirectory=/usr/local/ba/blazor
|
WorkingDirectory=/usr/local/ba/blazor
|
||||||
Environment=ASPNETCORE_ENVIRONMENT=Production
|
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
|
ExecStop=/bin/kill -2 $MAINPID
|
||||||
KillMode=process
|
KillMode=process
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ curl https://www.blazor.zone/api/dispatch?token=BootstrapBlazor-Reboot
|
|||||||
dotnet publish src/BootstrapBlazor.Server -c Release
|
dotnet publish src/BootstrapBlazor.Server -c Release
|
||||||
|
|
||||||
systemctl stop ba.blazor
|
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 start ba.blazor
|
||||||
systemctl status ba.blazor -l --no-pager
|
systemctl status ba.blazor -l --no-pager
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ sudo systemctl enable ba.blazor
|
|||||||
|
|
||||||
echo "*********************** install nginx ***********************"
|
echo "*********************** install nginx ***********************"
|
||||||
yes|sudo apt install nginx
|
yes|sudo apt install nginx
|
||||||
|
mkdir /usr/share/nginx/logs
|
||||||
|
|
||||||
echo "*********************** copy nginx config ***********************"
|
echo "*********************** copy nginx config ***********************"
|
||||||
sudo cp BootstrapBlazor/scripts/linux/nginx.conf /etc/nginx/
|
sudo cp BootstrapBlazor/scripts/linux/nginx.conf /etc/nginx/
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<p>一套基于 <b>Bootstrap</b> 样式的企业级 <b>Blazor UI</b> 组件库,支持 Server 与 WebAssembly</p>
|
<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>
|
<p></p>
|
||||||
<div>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl" target="_blank">项目模板</a></div>
|
<div>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl" target="_blank">项目模板</a></div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
const el = document.querySelector(anchor)
|
const el = document.querySelector(anchor)
|
||||||
if (el) {
|
if (el) {
|
||||||
const handler = setTimeout(() => {
|
const handler = setTimeout(() => {
|
||||||
el.scrollIntoView({ behavior: 'smooth', block: 'center' })
|
el.scrollIntoView({ behavior: 'smooth', block: 'start' })
|
||||||
clearTimeout(handler)
|
clearTimeout(handler)
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
</ScriptsTemplate>
|
</ScriptsTemplate>
|
||||||
<ServicesTemplate>
|
<ServicesTemplate>
|
||||||
<ul class="ul-demo">
|
<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>
|
</ul>
|
||||||
<p><b>Startup.cs</b></p>
|
<p><b>Startup.cs</b></p>
|
||||||
<Pre>namespace MyBlazorAppName
|
<Pre>namespace MyBlazorAppName
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ static async Task SetCultureAsync(WebAssemblyHost host)
|
|||||||
</ServicesTemplate>
|
</ServicesTemplate>
|
||||||
<RootTemplate>
|
<RootTemplate>
|
||||||
<ul class="ul-demo">
|
<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>
|
</ul>
|
||||||
|
|
||||||
<Pre>// NET6/NET7
|
<Pre>// NET6/NET7
|
||||||
|
|||||||
12
src/BootstrapBlazor.Server/Components/Pages/NotFound.razor
Normal file
12
src/BootstrapBlazor.Server/Components/Pages/NotFound.razor
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
@page "/not-found"
|
||||||
|
@layout MainLayout
|
||||||
|
@inject NavigationManager NavigationManager
|
||||||
|
|
||||||
|
@code {
|
||||||
|
protected override void OnInitialized()
|
||||||
|
{
|
||||||
|
base.OnInitialized();
|
||||||
|
|
||||||
|
NavigationManager.NavigateTo("/");
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
<Router AppAssembly="@typeof(Program).Assembly">
|
<Router AppAssembly="@typeof(Program).Assembly" NotFoundPage="typeof(Pages.NotFound)">
|
||||||
<Found Context="routeData">
|
<Found Context="routeData">
|
||||||
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||||
<FocusOnNavigate RouteData="routeData" Selector="h3" />
|
<FocusOnNavigate RouteData="routeData" Selector="h3" />
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<p>基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</p>
|
<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>
|
<p>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="connection-body-tail d-none d-sm-block"></div>
|
<div class="connection-body-tail d-none d-sm-block"></div>
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<div class="mb-2">基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</div>
|
<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>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="connection-body-tail d-none d-sm-block"></div>
|
<div class="connection-body-tail d-none d-sm-block"></div>
|
||||||
@@ -187,7 +187,7 @@
|
|||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<div class="mb-2">基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</div>
|
<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>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="connection-body-tail d-none d-sm-block"></div>
|
<div class="connection-body-tail d-none d-sm-block"></div>
|
||||||
@@ -248,7 +248,7 @@
|
|||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="flex-fill">
|
<div class="flex-fill">
|
||||||
<div class="mb-2">基于 <b>Bootstrap</b> 样式的 <b>Blazor UI</b> 组件库</div>
|
<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>已提供项目模板方便快速上手 <a class="connection-link" href="@TemplateUrl">项目模板</a></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="connection-body-tail d-none d-sm-block"></div>
|
<div class="connection-body-tail d-none d-sm-block"></div>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
"CopiedText": "Copied"
|
"CopiedText": "Copied"
|
||||||
},
|
},
|
||||||
"BootstrapBlazor.Server.Components.Pages.Index": {
|
"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",
|
"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.",
|
"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",
|
"Docs": "Read the docs",
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
"CopiedText": "复制代码成功"
|
"CopiedText": "复制代码成功"
|
||||||
},
|
},
|
||||||
"BootstrapBlazor.Server.Components.Pages.Index": {
|
"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",
|
"Title": "Bootstrap Blazor UI",
|
||||||
"SubTitle": "BootstrapBlazor 是一套基于 Bootstrap 和 Blazor 的企业级组件库,无缝整合了 Bootstrap 框架与 Blazor 技术。它提供了一整套强大的工具,使开发者能够轻松创建响应式和交互式的 Web 应用程序。",
|
"SubTitle": "BootstrapBlazor 是一套基于 Bootstrap 和 Blazor 的企业级组件库,无缝整合了 Bootstrap 框架与 Blazor 技术。它提供了一整套强大的工具,使开发者能够轻松创建响应式和交互式的 Web 应用程序。",
|
||||||
"Docs": "阅读文档",
|
"Docs": "阅读文档",
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
@@ -25,6 +25,7 @@
|
|||||||
<NET7Version>7.0.*</NET7Version>
|
<NET7Version>7.0.*</NET7Version>
|
||||||
<NET8Version>8.0.*</NET8Version>
|
<NET8Version>8.0.*</NET8Version>
|
||||||
<NET9Version>9.0.*</NET9Version>
|
<NET9Version>9.0.*</NET9Version>
|
||||||
|
<NET10Version>10.0.0-rc*</NET10Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
|
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
|
||||||
@@ -69,6 +70,16 @@
|
|||||||
<PackageReference Include="Microsoft.Extensions.Localization" Version="$(NET9Version)" />
|
<PackageReference Include="Microsoft.Extensions.Localization" Version="$(NET9Version)" />
|
||||||
</ItemGroup>
|
</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>
|
<ItemGroup>
|
||||||
<SupportedPlatform Include="browser" />
|
<SupportedPlatform Include="browser" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -393,7 +393,7 @@ public class UtilityTest : BootstrapBlazorTestBase
|
|||||||
|
|
||||||
var test1 = items.FirstOrDefault(i => i.Name == "Test-Null");
|
var test1 = items.FirstOrDefault(i => i.Name == "Test-Null");
|
||||||
Assert.NotNull(test1);
|
Assert.NotNull(test1);
|
||||||
Assert.Equal("", test1.Value);
|
Assert.Equal("Test-Null", test1.Value);
|
||||||
|
|
||||||
var test2 = items.FirstOrDefault(i => i.Name == "Test-Key");
|
var test2 = items.FirstOrDefault(i => i.Name == "Test-Key");
|
||||||
Assert.NotNull(test2);
|
Assert.NotNull(test2);
|
||||||
|
|||||||
Reference in New Issue
Block a user