Lessokaji MDCS 下载

ClumsyWinUI.dll

ClumsyWinUI —— 由 ClumsyLite 托管的传统 Clumsy 控制台

把原来 ClumsyConsole.exe 的界面(控制面板、车辆配置、驱动编辑器、地图视图、消息日志) 重新编成 net8.0-windows 类库,由 ClumsyLite 在运行时加载。

为什么要单独一个文件

ClumsyLite 必须能在 Linux 上跑,所以它不能在编译期引用 WinForms。WinForms 那部分代码 全部关在本 dll 里,ClumsyLite 只在 Windows 上用反射加载它;Linux 上这个文件根本不会被碰。

安装

放到 ClumsyLite.exe 同级:

ClumsyLite.exe
ClumsyWinUI.dll      <- 本文件

照常启动 ClumsyLite,会看到:

WinUI: resolving desktop assemblies from ...\Microsoft.WindowsDesktop.App\8.0.x
WinUI: loaded: ClumsyWinUI on .NET 8.0.x, WinForms available

以及熟悉的 Clumsy Console 窗口。不放这个文件则打印 WinUI: skipped: ClumsyWinUI.dll not found,其余一切照旧。

前置要求

需要装 .NET 8 桌面运行时(不是只有基础运行时)——WinForms 是直接从 Microsoft.WindowsDesktop.App 共享框架里加载的。ClumsyLite 本体只需要基础运行时。

相比 CycleGUI 界面多了什么

ClumsyLite 自己的 RegisterMouseAction / ClearMouseAction 是未实现(直接抛异常), 也就是任何需要操作员在地图上点一下的算法都跑不了。加载 ClumsyWinUI 之后这两个接上了 传统面板的实现,就能用了。输入框和消息框也一并回到传统窗口,避免一次交互被劈在两个界面上。

已知缺口

3D 可视化窗口(MessyEngine)在这里不可用——那个组件是 .NET Framework 的, net8 下加载不了。需要 3D 请继续用 ClumsyConsole.exe,或者用 ClumsyLite 自带的 CycleGUI 三维视图。