跳到主要内容

升级到 3.1

本文列出客户项目从 3.0 升级到 3.1 时必须修改的地方。3.1 有较多改名,升级后项目通常编译不过,按下面各节逐项修改即可。

版本对应​

仓库版本
logimaster(framework + modules)3.1.0
hikrobot、junion、mir、seer3.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:

旧表新表
RcsAreasRcsZones
ThingManagementDeviceMapPositionsThingManagementDeviceLayouts

改法参考模块宿主里的迁移:modules/rcs/host/*/Migrations/*_RenameAreaToZone.cs、modules/thing-management/host/*/Migrations/*_RenameDeviceMapPositionToDeviceLayout.cs。主键、外键和索引也要一起改名。

其他变化由迁移自动处理:新增墙、画刷、库位类型与库位布局、车型、任务模板、充电策略等表;删除用户地图视角表(UserMapViewports);删除风淋门的内部区域字段。

项目引用改名​

SkiaSharp 画布相关的项目改名,与 Pixi 项目对称。csproj 里的 ProjectReference 和模块类的 [DependsOn] 都要改:

旧名新名
Tgone.LogiMaster.DrawingTgone.LogiMaster.Drawing.Skia
Tgone.LogiMaster.Drawing.BlazorTgone.LogiMaster.Drawing.Skia.Blazor
Tgone.LogiMaster.<模块>.Blazor.Drawing(地图管理、RCS、物联网管理)Tgone.LogiMaster.<模块>.Blazor.Skia
LogiMasterDrawingModule、LogiMasterDrawingBlazorModuleLogiMasterDrawingSkiaModule、LogiMasterDrawingSkiaBlazorModule
LogiMaster<模块>BlazorDrawingModuleLogiMaster<模块>BlazorSkiaModule
DrawingResourceDrawingSkiaResource

静态资源路径变为 _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 的,要改成新名字:

旧名新名
HSLOptionsLogiMasterHslOptions
HSLOptions.UseAuthorizationLogiMasterHslOptions.IsAuthorizationEnabled
DataCleanerOptionsLogiMasterDataCleanerOptions
MudBlazorUIOptionsLogiMasterMudBlazorUIOptions
ThingModelUIOptionsLogiMasterThingModelUIOptions
NotificationOptions(framework)LogiMasterNotificationOptions
FileIconOptionFileIconOptions
DrawingInteractionOptionsDrawingInteractionContext
PixiCanvasKindOptionsPixiCanvasKindConfiguration
RcsActionOptions.ActionDefinitionProvidersRcsActionOptions.DefinitionProviders
RcsStatisticOptions.StatisticContributorsRcsStatisticOptions.Contributors
WmsStrategyOptions.ValueProvidersWmsStrategyOptions.Providers
LogiMasterRosBridgeOptions.RosBridgeSubscribeTypeLogiMasterRosBridgeOptions.SubscribeTypes
LogiMasterDrawingSkiaOptions.EnableDirtyRectRenderingLogiMasterDrawingSkiaOptions.IsDirtyRectRenderingEnabled
LogiMasterDrawingSkiaOptions.DebugDrawDirtyRectsLogiMasterDrawingSkiaOptions.IsDirtyRectOverlayEnabled
RobotComponentConfiguration.DetailCompoentRobotComponentConfiguration.DetailComponent

供应商模块​

  • Junion:LogiMasterJunionRobotsOptions → JunionRobotOptions。
  • Seer:RDSCore 的启用开关由功能(Feature)改为设置(Settings),SeerFeatures 已删除。原来在功能里打开的开关不会自动迁移,升级后要在 Seer 设置页重新启用 RDSCore,并可在设置页测试连接。
  • MiR:去掉任务调度的预计到达时间(ETA),相关 DTO/ETO 字段和本地化键已删除。项目里用到这些字段的地方要去掉。