升级到 3.1
本文列出客户项目从 3.0 升级到 3.1 时必须修改的地方。3.1 有较多改名,升级后项目通常编译不过,按下面各节逐项修改即可。
版本对应
| 仓库 | 版本 |
|---|---|
| logimaster(framework + modules) | 3.1.0 |
| hikrobot、junion、mir、seer | 3.1.0 |
ABP 仍是 9.3.7,.NET 仍是 9,不需要升级 SDK。pudu 不再随 LogiMaster 发布。
数据库迁移
3.1 有多处表结构变化,升级后必须在项目里新增一个 EF Core 迁移,并运行 DbMigrator。动手前先备份现场数据库。
dotnet ef migrations add Upgrade_3_1 --project src/Tgone.LogiMaster.<Project>.EntityFrameworkCore
生成迁移后,检查下面两张表。EF Core 会把它们生成成"删表再建表",这样会丢数据,要手工改成 RenameTable:
| 旧表 | 新表 |
|---|---|
RcsAreas | RcsZones |
ThingManagementDeviceMapPositions | ThingManagementDeviceLayouts |
改法参考模块宿主里的迁移:modules/rcs/host/*/Migrations/*_RenameAreaToZone.cs、modules/thing-management/host/*/Migrations/*_RenameDeviceMapPositionToDeviceLayout.cs。主键、外键和索引也要一起改名。
其他变化由迁移自动处理:新增墙、画刷、库位类型与库位布局、车型、任务模板、充电策略等表;删除用户地图视角表(UserMapViewports);删除风淋门的内部区域字段。
项目引用改名
SkiaSharp 画布相关的项目改名,与 Pixi 项目对称。csproj 里的 ProjectReference 和模块类的 [DependsOn] 都要改:
| 旧名 | 新名 |
|---|---|
Tgone.LogiMaster.Drawing | Tgone.LogiMaster.Drawing.Skia |
Tgone.LogiMaster.Drawing.Blazor | Tgone.LogiMaster.Drawing.Skia.Blazor |
Tgone.LogiMaster.<模块>.Blazor.Drawing(地图管理、RCS、物联网管理) | Tgone.LogiMaster.<模块>.Blazor.Skia |
LogiMasterDrawingModule、LogiMasterDrawingBlazorModule | LogiMasterDrawingSkiaModule、LogiMasterDrawingSkiaBlazorModule |
LogiMaster<模块>BlazorDrawingModule | LogiMaster<模块>BlazorSkiaModule |
DrawingResource | DrawingSkiaResource |
静态资源路径变为 _content/Tgone.LogiMaster.Drawing.Skia.Blazor/。
language-management 模块已删除,项目里引用它的地方要去掉。
类型和接口改名
RCS
- 区域 Area 改名为 Zone:命名空间
...Rcs.Areas→...Rcs.Zones,类型和成员同步改名;API 路由api/rcs/areas→api/rcs/zones;本地化键Area*→Zone*;Pixi 元素类型rcs.area→rcs.zone;RobotStatus.CurrentAreaIds→CurrentZoneIds。 ITrafficGraphManager→ITopologyGraphManager。- 任务分配和充电调度的命名空间从
RobotTasks下移出,改为Tgone.LogiMaster.Rcs.Dispatching。 - 删除
PositionElementDefinition。站点、路径、机器人的地图元素改为实现I{X}ElementProvider(CanHandle+CreateAsync),在Rcs{X}ElementOptions.Providers里登记;没有登记的品牌使用 RCS 默认元素。 - 删除风淋门的
AirShowerDoor.InsidePolygon,车间内外改用墙隔开。
物联网管理
DeviceMapPosition→DeviceLayout;API 路由改为api/thing-management/device-layouts;UpdateMapPositionsAsync→UpdateMapLayoutsAsync。
地图管理
- 删除
UserMapViewport,地图视角改为保存在浏览器 localStorage。 PixiMapEditorOptions去掉,改用PixiEditorOptions。
Options 改名
在项目模块的 ConfigureServices 里配置过下面这些 Options 的,要改成新名字:
| 旧名 | 新名 |
|---|---|
HSLOptions | LogiMasterHslOptions |
HSLOptions.UseAuthorization | LogiMasterHslOptions.IsAuthorizationEnabled |
DataCleanerOptions | LogiMasterDataCleanerOptions |
MudBlazorUIOptions | LogiMasterMudBlazorUIOptions |
ThingModelUIOptions | LogiMasterThingModelUIOptions |
NotificationOptions(framework) | LogiMasterNotificationOptions |
FileIconOption | FileIconOptions |
DrawingInteractionOptions | DrawingInteractionContext |
PixiCanvasKindOptions | PixiCanvasKindConfiguration |
RcsActionOptions.ActionDefinitionProviders | RcsActionOptions.DefinitionProviders |
RcsStatisticOptions.StatisticContributors | RcsStatisticOptions.Contributors |
WmsStrategyOptions.ValueProviders | WmsStrategyOptions.Providers |
LogiMasterRosBridgeOptions.RosBridgeSubscribeType | LogiMasterRosBridgeOptions.SubscribeTypes |
LogiMasterDrawingSkiaOptions.EnableDirtyRectRendering | LogiMasterDrawingSkiaOptions.IsDirtyRectRenderingEnabled |
LogiMasterDrawingSkiaOptions.DebugDrawDirtyRects | LogiMasterDrawingSkiaOptions.IsDirtyRectOverlayEnabled |
RobotComponentConfiguration.DetailCompoent | RobotComponentConfiguration.DetailComponent |
供应商模块
- Junion:
LogiMasterJunionRobotsOptions→JunionRobotOptions。 - Seer:RDSCore 的启用开关由功能(Feature)改为设置(Settings),
SeerFeatures已删除。原来在功能里打开的开关不会自动迁移,升级后要在 Seer 设置页重新启用 RDSCore,并可在设置页测试连接。 - MiR:去掉任务调度的预计到达时间(ETA),相关 DTO/ETO 字段和本地化键已删除。项目里用到这些字段的地方要去掉。