NewLife/XCoder

chore: 升级 NewLife 依赖至最新 beta 并迁移解决方案为新格式

- NewLife.* 全部升级到最新 beta:Core 12.0、XCode 12.2、Remoting 3.9、Stardust 3.10、MQTT 3.2、Redis 6.6、Map 2.7、Net 4.4、ModbusRTU/Modbus 2.1、Security 11.19.2026.926
- 删除 CrazyCoder 中重复的 PackageReference,修复 NU1605 包降级错误;System.Management 随 Core 12 升至 10.0.12
- 适配 Core v12 破坏性变更:Packet 类删除改用 IPacket/ArrayPacket;NewLife.Net.Handlers 移除改用 NewLife.Messaging 与 NetServer.Protocol;GeoPoint 构造改为 TryParse
- XCoder 命令行二进制参数判断由 Packet 改为 IPacket
- 码神工具.sln 迁移为 XML 格式 码神工具.slnx
大石头 authored at 2026-10-18 15:36:13
3968fc7
Tree
1 Parent(s) 3ff4635
Summary: 20 changed files with 97 additions and 312 deletions.
Modified +3 -3
Modified +13 -13
Modified +5 -2
Modified +1 -1
Modified +2 -2
Modified +2 -2
Modified +14 -33
Modified +2 -2
Modified +1 -1
Modified +6 -9
Modified +5 -5
Modified +1 -1
Modified +1 -1
Modified +2 -2
Modified +10 -10
Modified +2 -2
Modified +4 -4
Modified +1 -1
Deleted +0 -218
码神工具.sln
Added +22 -0
Modified +3 -3
diff --git a/A1Lib/A1Lib.csproj b/A1Lib/A1Lib.csproj
index 9485136..945f4e2 100644
--- a/A1Lib/A1Lib.csproj
+++ b/A1Lib/A1Lib.csproj
@@ -20,10 +20,10 @@
     <PackageReference Include="LomontWin" Version="0.6.6" />
     <PackageReference Include="MathNet.Numerics" Version="5.0.0" />
     <PackageReference Include="NAudio" Version="2.3.0" />
-    <PackageReference Include="NewLife.Core" Version="11.17.2026.701" />
+    <PackageReference Include="NewLife.Core" Version="12.0.2026.1017-beta1103" />
     <PackageReference Include="System.IO.Ports" Version="10.0.9" />
-    <PackageReference Include="System.Management" Version="10.0.9" />
-    <PackageReference Include="NewLife.ModbusRTU" Version="2.0.2026.610" />
+    <PackageReference Include="System.Management" Version="10.0.12" />
+    <PackageReference Include="NewLife.ModbusRTU" Version="2.1.2026.902-beta1359" />
   </ItemGroup>
   <!-- 原生库嵌入方式:zip 压缩优先,裸文件兜底。
        原生 DLL 多为未压缩 PE,zip 压缩率可达 3~8 倍。
Modified +13 -13
diff --git a/CrazyCoder/CoderWpf.csproj b/CrazyCoder/CoderWpf.csproj
index ffc0b6d..435e202 100644
--- a/CrazyCoder/CoderWpf.csproj
+++ b/CrazyCoder/CoderWpf.csproj
@@ -30,23 +30,23 @@
   <ItemGroup>
     <PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.0" />
     <PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
-    <PackageReference Include="NewLife.Core" Version="11.15.2026.501" />
-    <PackageReference Include="NewLife.Stardust" Version="3.7.2026.501" />
-    <PackageReference Include="NewLife.XCode" Version="11.26.2026.501" />
-    <PackageReference Include="NewLife.Net" Version="4.4.2026.206" />
-    <PackageReference Include="NewLife.Remoting" Version="3.7.2026.501" />
-    <PackageReference Include="NewLife.Security" Version="11.15.2026.501" />
-    <PackageReference Include="NewLife.MQTT" Version="3.0.2026.501" />
-    <PackageReference Include="NewLife.Redis" Version="6.5.2026.501" />
-    <PackageReference Include="NewLife.Map" Version="2.6.2026.102" />
-    <PackageReference Include="NewLife.ModbusRTU" Version="2.0.2025.701" />
+    <PackageReference Include="NewLife.Core" Version="12.0.2026.1017-beta1103" />
+    <PackageReference Include="NewLife.Stardust" Version="3.10.2026.1017-beta1056" />
+    <PackageReference Include="NewLife.XCode" Version="12.2.2026.1017-beta1246" />
+    <PackageReference Include="NewLife.Net" Version="4.4.2026.305-beta0011" />
+    <PackageReference Include="NewLife.Remoting" Version="3.9.2026.1017-beta1444" />
+    <PackageReference Include="NewLife.Security" Version="11.19.2026.926" />
+    <PackageReference Include="NewLife.MQTT" Version="3.2.2026.1017-beta1416" />
+    <PackageReference Include="NewLife.Redis" Version="6.6.2026.1017-beta1441" />
+    <PackageReference Include="NewLife.Map" Version="2.7.2026.1017-beta1410" />
+    <PackageReference Include="NewLife.ModbusRTU" Version="2.1.2026.902-beta1359" />
     <PackageReference Include="NAudio" Version="2.4.0" />
     <PackageReference Include="SSH.NET" Version="2025.1.0" />
     <PackageReference Include="System.IO.Ports" Version="8.0.0" />
     <PackageReference Include="System.Speech" Version="10.0.7" />
-    <PackageReference Include="System.Management" Version="10.0.7" />
-    <PackageReference Include="NewLife.IoT" Version="2.7.2026.501" />
-    <PackageReference Include="NewLife.Modbus" Version="2.0.2025.701" />
+    <PackageReference Include="System.Management" Version="10.0.12" />
+    <PackageReference Include="NewLife.IoT" Version="3.1.2026.801" />
+    <PackageReference Include="NewLife.Modbus" Version="2.1.2026.902-beta1359" />
     <PackageReference Include="System.Data.DataSetExtensions" Version="4.5.0" />
   </ItemGroup>
   <ItemGroup>
Modified +5 -2
diff --git a/CrazyCoder/ViewModels/MapViewModel.cs b/CrazyCoder/ViewModels/MapViewModel.cs
index 1b77b9d..c0dc80a 100644
--- a/CrazyCoder/ViewModels/MapViewModel.cs
+++ b/CrazyCoder/ViewModels/MapViewModel.cs
@@ -136,8 +136,11 @@ public partial class MapViewModel : ObservableObject
             var im = map as IMap;
             var addr = Address;
             var city = City;
-            var point = new GeoPoint(Location);
-            var point2 = new GeoPoint(Location2);
+            if (!GeoPoint.TryParse(Location, out var point) || !GeoPoint.TryParse(Location2, out var point2))
+            {
+                ResultLog = "经纬度格式非法,应为 \"经度,纬度\",如:116.4,39.9";
+                return;
+            }
 
             Object result = null;
 
Modified +1 -1
diff --git a/CrazyCoder/ViewModels/MessageDebugViewModel.cs b/CrazyCoder/ViewModels/MessageDebugViewModel.cs
index c0fa854..3521ebe 100644
--- a/CrazyCoder/ViewModels/MessageDebugViewModel.cs
+++ b/CrazyCoder/ViewModels/MessageDebugViewModel.cs
@@ -189,7 +189,7 @@ public partial class MessageDebugViewModel : ObservableObject
         if (str.IsNullOrEmpty()) return;
 
         var buf = HexSend ? str.ToHex() : str.GetBytes();
-        var pk = new Packet(buf);
+        var pk = new ArrayPacket(buf);
 
         if (_client != null)
         {
Modified +2 -2
diff --git a/CrazyCoder/ViewModels/ModbusTcpViewModel.cs b/CrazyCoder/ViewModels/ModbusTcpViewModel.cs
index 9710952..2c3e101 100644
--- a/CrazyCoder/ViewModels/ModbusTcpViewModel.cs
+++ b/CrazyCoder/ViewModels/ModbusTcpViewModel.cs
@@ -9,8 +9,8 @@ using NewLife.Buffers;
 using NewLife.Data;
 using NewLife.IoT.Protocols;
 using NewLife.Log;
+using NewLife.Messaging;
 using NewLife.Net;
-using NewLife.Net.Handlers;
 using NewLife.Security;
 using NewLife.Threading;
 
@@ -204,7 +204,7 @@ public partial class ModbusTcpViewModel : ObservableObject, IDisposable
             Log = new ModbusTcpLog(this),
             SessionLog = new ModbusTcpLog(this),
         };
-        svr.Add(new LengthFieldCodec { Offset = 4, Size = -2 });
+        svr.Protocol = new LengthFieldCodec { Offset = 4, Size = -2 };
         svr.Received += OnSlaveReceived;
         svr.Start();
 
Modified +2 -2
diff --git a/XCoder-CLI/XCoder-CLI.csproj b/XCoder-CLI/XCoder-CLI.csproj
index 1dd7007..015cfde 100644
--- a/XCoder-CLI/XCoder-CLI.csproj
+++ b/XCoder-CLI/XCoder-CLI.csproj
@@ -22,8 +22,8 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="NewLife.Core" Version="11.9.2025.1112"/>
-    <PackageReference Include="NewLife.XCode" Version="11.22.2025.1112"/>
+    <PackageReference Include="NewLife.Core" Version="12.0.2026.1017-beta1103"/>
+    <PackageReference Include="NewLife.XCode" Version="12.2.2026.1017-beta1246"/>
   </ItemGroup>
 
 </Project>
Modified +14 -33
diff --git a/XCoder/CrazyCoder.csproj b/XCoder/CrazyCoder.csproj
index b4b4deb..7162044 100644
--- a/XCoder/CrazyCoder.csproj
+++ b/XCoder/CrazyCoder.csproj
@@ -67,42 +67,23 @@
     <Content Include="数据库命名规范.txt" />
   </ItemGroup>
   <ItemGroup>
-    <PackageReference Include="NewLife.Map" Version="2.6.2026.102" />
-    <PackageReference Include="NewLife.ModbusRTU" Version="2.0.2026.610" />
-    <PackageReference Include="NewLife.Remoting" Version="3.8.2026.706" />
-    <PackageReference Include="NewLife.Security" Version="11.17.2026.701" />
-    <PackageReference Include="System.Speech" Version="10.0.9" />
     <PackageReference Include="MathNet.Numerics" Version="5.0.0" />
-    <PackageReference Include="NAudio" Version="2.4.0" />
-    <PackageReference Include="NewLife.Map" Version="2.7.2026.804" />
-    <PackageReference Include="NewLife.ModbusRTU" Version="2.1.2026.901" />
-    <PackageReference Include="NewLife.Remoting" Version="3.9.2026.901" />
-    <PackageReference Include="NewLife.Security" Version="11.19.2026.901" />
-    <PackageReference Include="System.Speech" Version="10.0.11" />
     <PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />
-    <PackageReference Include="NewLife.Core">
-      <Version>11.19.2026.901</Version>
-    </PackageReference>
-    <PackageReference Include="NewLife.MQTT">
-      <Version>3.2.2026.801</Version>
-    </PackageReference>
-    <PackageReference Include="NewLife.Net">
-      <Version>4.4.2026.206</Version>
-    </PackageReference>
-    <PackageReference Include="NewLife.Redis">
-      <Version>6.6.2026.901</Version>
-    </PackageReference>
-    <PackageReference Include="NewLife.Stardust">
-      <Version>3.10.2026.901</Version>
-    </PackageReference>
-    <PackageReference Include="NewLife.XCode">
-      <Version>12.2.2026.901</Version>
-    </PackageReference>
-    <PackageReference Include="SSH.NET">
-      <Version>2026.0.0</Version>
-    </PackageReference>
+    <PackageReference Include="NAudio" Version="2.4.0" />
+    <PackageReference Include="NewLife.Core" Version="12.0.2026.1017-beta1103" />
+    <PackageReference Include="NewLife.Map" Version="2.7.2026.1017-beta1410" />
+    <PackageReference Include="NewLife.ModbusRTU" Version="2.1.2026.902-beta1359" />
+    <PackageReference Include="NewLife.MQTT" Version="3.2.2026.1017-beta1416" />
+    <PackageReference Include="NewLife.Net" Version="4.4.2026.305-beta0011" />
+    <PackageReference Include="NewLife.Redis" Version="6.6.2026.1017-beta1441" />
+    <PackageReference Include="NewLife.Remoting" Version="3.9.2026.1017-beta1444" />
+    <PackageReference Include="NewLife.Security" Version="11.19.2026.926" />
+    <PackageReference Include="NewLife.Stardust" Version="3.10.2026.1017-beta1056" />
+    <PackageReference Include="NewLife.XCode" Version="12.2.2026.1017-beta1246" />
+    <PackageReference Include="SSH.NET" Version="2026.0.0" />
     <PackageReference Include="System.IO.Ports" Version="10.0.11" />
-    <PackageReference Include="System.Management" Version="10.0.11" />
+    <PackageReference Include="System.Management" Version="10.0.12" />
+    <PackageReference Include="System.Speech" Version="10.0.11" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Star\" />
Modified +2 -2
diff --git a/XCoder/XApi/FrmMain.cs b/XCoder/XApi/FrmMain.cs
index 86b24e0..b039b97 100644
--- a/XCoder/XApi/FrmMain.cs
+++ b/XCoder/XApi/FrmMain.cs
@@ -339,9 +339,9 @@ public partial class FrmMain : Form, IXForm
 
         // 构造消息,二进制优先
         Object args = null;
-        if (ps.Length == 1 && ps[0].StartsWith("Packet "))
+        if (ps.Length == 1 && ps[0].StartsWith("IPacket "))
         {
-            args = new Packet(str.GetBytes());
+            args = new ArrayPacket(str.GetBytes());
         }
         else
         {
Modified +1 -1
diff --git a/XCoder/XNet/FrmMain.cs b/XCoder/XNet/FrmMain.cs
index 43a7ec0..2513c98 100644
--- a/XCoder/XNet/FrmMain.cs
+++ b/XCoder/XNet/FrmMain.cs
@@ -390,7 +390,7 @@ public partial class FrmMain : Form, IXForm
         // 处理换行
         str = str.Replace("\n", "\r\n");
         var buf = cfg.HexSend ? str.ToHex() : str.GetBytes();
-        var pk = new Packet(buf);
+        var pk = new ArrayPacket(buf);
 
         if (_Client != null)
         {
Modified +6 -9
diff --git a/XCoder/XNet/FrmModbusSlave.cs b/XCoder/XNet/FrmModbusSlave.cs
index 9528c96..89e8dba 100644
--- a/XCoder/XNet/FrmModbusSlave.cs
+++ b/XCoder/XNet/FrmModbusSlave.cs
@@ -5,8 +5,8 @@ using NewLife.Buffers;
 using NewLife.Data;
 using NewLife.IoT.Protocols;
 using NewLife.Log;
+using NewLife.Messaging;
 using NewLife.Net;
-using NewLife.Net.Handlers;
 using NewLife.Security;
 using NewLife.Threading;
 using XCoder;
@@ -100,7 +100,7 @@ namespace XNet
                 if (set.ShowReceive) svr.LogReceive = true;
 
                 // 加入定长编码器,处理Tcp粘包
-                svr.Add(new LengthFieldCodec { Offset = 4, Size = -2 });
+                svr.Protocol = new LengthFieldCodec { Offset = 4, Size = -2 };
                 svr.Received += OnReceived;
                 svr.Start();
 
@@ -263,10 +263,7 @@ namespace XNet
             var session = sender as NetSession;
             if (session == null) return;
 
-            var pk = e.Packet as Packet;
-            if (pk == null) pk = new Packet(e.Packet.ReadBytes());
-            var spanReader = pk.AsSpan();
-            var msg = ModbusIpMessage.Read(spanReader);
+            var msg = ModbusIpMessage.Read(e.Packet.ReadBytes());
             if (msg == null) return;
 
             session.Log?.Info("<= {0}", msg);
@@ -304,7 +301,7 @@ namespace XNet
                                 bits[1 + i] = (Byte)b;
                             }
 
-                            rs.Payload =new Packet( bits);
+                            rs.Payload = new ArrayPacket(bits);
                         }
                     }
                     break;
@@ -318,7 +315,7 @@ namespace XNet
                         if (addr >= 0 && addr + regCount <= _regs.Count)
                         {
                             var buf = _regs.Skip(addr).Take(regCount).SelectMany(e => e.GetData()).ToArray();
-                            rs.Payload = new Packet(new Byte[] { (Byte)buf.Length }.Concat(buf).ToArray());
+                            rs.Payload = new ArrayPacket(new Byte[] { (Byte)buf.Length }.Concat(buf).ToArray());
                            // rs.Payload.Append(new Packet(buf));
                         }
                     }
@@ -344,7 +341,7 @@ namespace XNet
                         Invoke(() => { dgv.Refresh(); });
                         {
                             var addr = addrMsg - _regs[0].Address;
-                            rs.Payload = new Packet(_regs.Skip(addr).Take(regCount).SelectMany(e => e.GetData()).ToArray());
+                            rs.Payload = new ArrayPacket(_regs.Skip(addr).Take(regCount).SelectMany(e => e.GetData()).ToArray());
                         }
                     }
                     break;
Modified +5 -5
diff --git a/XCoder/XNet/MySqlParser.cs b/XCoder/XNet/MySqlParser.cs
index 7c2e026..db98d60 100644
--- a/XCoder/XNet/MySqlParser.cs
+++ b/XCoder/XNet/MySqlParser.cs
@@ -15,7 +15,7 @@ namespace XCoder.XNet
         public IPEndPoint LastSrcEP { get; set; }
         public IPEndPoint LastDstEP { get; set; }
 
-        public abstract void Parse(Packet pk);
+        public abstract void Parse(IPacket pk);
 
         //The Packet Header
         //Bytes                 Name
@@ -62,16 +62,16 @@ namespace XCoder.XNet
             _packet = new MySqlQueryPacket();
         }
 
-        public override void Parse(Packet pk)
+        public override void Parse(IPacket pk)
         {
             TryParse(pk);
         }
 
-        private void TryParse(Packet pk)
+        private void TryParse(IPacket pk)
         {
             if (_state == ParsingState.Head)
             {
-                if (pk.Count >= 4)
+                if (pk.Length >= 4)
                 {
                     var head = pk.ReadBytes(4);
                     ReadPacketHeader(head, out _packet.Length, out _packet.Num);
@@ -83,7 +83,7 @@ namespace XCoder.XNet
 
             if (_state == ParsingState.Body)
             {
-                if (pk.Count >= _packet.Length)
+                if (pk.Length >= _packet.Length)
                 {
                     var body = _packet.Body = pk.ReadBytes(_packet.Length);
                     _packet.Command = (DBCmd)body[0];
Modified +1 -1
diff --git a/XCoder/XNet/RawSocket.cs b/XCoder/XNet/RawSocket.cs
index b40763a..df113f0 100644
--- a/XCoder/XNet/RawSocket.cs
+++ b/XCoder/XNet/RawSocket.cs
@@ -42,7 +42,7 @@ namespace XCoder.XNet
                 var buffer = new Byte[1500];
 
                 var count = _socket.Receive(buffer, SocketFlags.None);
-                var pk = new Packet(buffer, 0, count);
+                var pk = new ArrayPacket(buffer, 0, count);
 
                 OnReceive?.Invoke(buffer, count);
 
Modified +1 -1
diff --git a/XCoderAv/ViewModels/MessageDebugViewModel.cs b/XCoderAv/ViewModels/MessageDebugViewModel.cs
index 58026aa..831ca3c 100644
--- a/XCoderAv/ViewModels/MessageDebugViewModel.cs
+++ b/XCoderAv/ViewModels/MessageDebugViewModel.cs
@@ -189,7 +189,7 @@ public partial class MessageDebugViewModel : ObservableObject
         if (str.IsNullOrEmpty()) return;
 
         var buf = HexSend ? str.ToHex() : str.GetBytes();
-        var pk = new Packet(buf);
+        var pk = new ArrayPacket(buf);
 
         if (_client != null)
         {
Modified +2 -2
diff --git a/XCoderAv/ViewModels/ModbusTcpViewModel.cs b/XCoderAv/ViewModels/ModbusTcpViewModel.cs
index 89b3af3..4c7cd22 100644
--- a/XCoderAv/ViewModels/ModbusTcpViewModel.cs
+++ b/XCoderAv/ViewModels/ModbusTcpViewModel.cs
@@ -5,8 +5,8 @@ using NewLife;
 using NewLife.Data;
 using NewLife.IoT.Protocols;
 using NewLife.Log;
+using NewLife.Messaging;
 using NewLife.Net;
-using NewLife.Net.Handlers;
 using NewLife.Security;
 using NewLife.Threading;
 
@@ -203,7 +203,7 @@ public partial class ModbusTcpViewModel : ObservableObject, IDisposable
             Log = new ModbusTcpLog(this),
             SessionLog = new ModbusTcpLog(this),
         };
-        svr.Add(new LengthFieldCodec { Offset = 4, Size = -2 });
+        svr.Protocol = new LengthFieldCodec { Offset = 4, Size = -2 };
         svr.Received += OnSlaveReceived;
         svr.Start();
 
Modified +10 -10
diff --git a/XCoderAv/XCoderAv.csproj b/XCoderAv/XCoderAv.csproj
index 5937033..925b550 100644
--- a/XCoderAv/XCoderAv.csproj
+++ b/XCoderAv/XCoderAv.csproj
@@ -27,16 +27,16 @@
     <PackageReference Include="Avalonia.Themes.Fluent" Version="12.1.1" />
     <PackageReference Include="Avalonia.Fonts.Inter" Version="12.1.1" />
     <PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
-    <PackageReference Include="NewLife.Core" Version="11.19.2026.901" />
-    <PackageReference Include="NewLife.Stardust" Version="3.10.2026.901" />
-    <PackageReference Include="NewLife.XCode" Version="12.2.2026.901" />
-    <PackageReference Include="NewLife.Net" Version="4.4.2026.206" />
-    <PackageReference Include="NewLife.Remoting" Version="3.9.2026.901" />
-    <PackageReference Include="NewLife.Security" Version="11.19.2026.901" />
-    <PackageReference Include="NewLife.MQTT" Version="3.2.2026.801" />
-    <PackageReference Include="NewLife.Redis" Version="6.6.2026.901" />
-    <PackageReference Include="NewLife.Map" Version="2.7.2026.804" />
-    <PackageReference Include="NewLife.ModbusRTU" Version="2.1.2026.901" />
+    <PackageReference Include="NewLife.Core" Version="12.0.2026.1017-beta1103" />
+    <PackageReference Include="NewLife.Stardust" Version="3.10.2026.1017-beta1056" />
+    <PackageReference Include="NewLife.XCode" Version="12.2.2026.1017-beta1246" />
+    <PackageReference Include="NewLife.Net" Version="4.4.2026.305-beta0011" />
+    <PackageReference Include="NewLife.Remoting" Version="3.9.2026.1017-beta1444" />
+    <PackageReference Include="NewLife.Security" Version="11.19.2026.926" />
+    <PackageReference Include="NewLife.MQTT" Version="3.2.2026.1017-beta1416" />
+    <PackageReference Include="NewLife.Redis" Version="6.6.2026.1017-beta1441" />
+    <PackageReference Include="NewLife.Map" Version="2.7.2026.1017-beta1410" />
+    <PackageReference Include="NewLife.ModbusRTU" Version="2.1.2026.902-beta1359" />
     <PackageReference Include="SSH.NET" Version="2026.0.0" />
     <PackageReference Include="System.IO.Ports" Version="10.0.11" />
   </ItemGroup>
Modified +2 -2
diff --git a/XCoderLinux/XApi/FrmMain.cs b/XCoderLinux/XApi/FrmMain.cs
index 86cd467..22b93dd 100644
--- a/XCoderLinux/XApi/FrmMain.cs
+++ b/XCoderLinux/XApi/FrmMain.cs
@@ -364,9 +364,9 @@ namespace XApi
 
             // 构造消息,二进制优先
             Object args = null;
-            if (ps.Length == 1 && ps[0].StartsWith("Packet "))
+            if (ps.Length == 1 && ps[0].StartsWith("IPacket "))
             {
-                args = new Packet(str.GetBytes());
+                args = new ArrayPacket(str.GetBytes());
             }
             else
             {
Modified +4 -4
diff --git a/XCoderLinux/XCoderLinux.csproj b/XCoderLinux/XCoderLinux.csproj
index b6b5389..d34a6b1 100644
--- a/XCoderLinux/XCoderLinux.csproj
+++ b/XCoderLinux/XCoderLinux.csproj
@@ -49,11 +49,11 @@
 
   <ItemGroup>
     <PackageReference Include="GtkSharp" Version="3.24.24.95" />
-    <PackageReference Include="NewLife.Core" Version="11.19.2026.901" />
-    <PackageReference Include="NewLife.Stardust" Version="3.10.2026.901" />
-    <PackageReference Include="NewLife.XCode" Version="12.2.2026.901" />
+    <PackageReference Include="NewLife.Core" Version="12.0.2026.1017-beta1103" />
+    <PackageReference Include="NewLife.Stardust" Version="3.10.2026.1017-beta1056" />
+    <PackageReference Include="NewLife.XCode" Version="12.2.2026.1017-beta1246" />
     <PackageReference Include="System.IO.Ports" Version="8.0.0" />
-    <PackageReference Include="System.Management" Version="10.0.11" />
+    <PackageReference Include="System.Management" Version="10.0.12" />
   </ItemGroup>
 
   <ItemGroup>
Modified +1 -1
diff --git a/XCoderLinux/XNet/FrmMain.cs b/XCoderLinux/XNet/FrmMain.cs
index 315b0c6..1a6bff2 100644
--- a/XCoderLinux/XNet/FrmMain.cs
+++ b/XCoderLinux/XNet/FrmMain.cs
@@ -385,7 +385,7 @@ namespace XNet
             // 处理换行
             str = str.Replace("\n", "\r\n");
             var buf = cfg.HexSend ? str.ToHex() : str.GetBytes();
-            var pk = new Packet(buf);
+            var pk = new ArrayPacket(buf);
 
             if (_Client != null)
             {
Deleted +0 -218
码神工具.sln
Added +22 -0
diff --git "a/\347\240\201\347\245\236\345\267\245\345\205\267.slnx" "b/\347\240\201\347\245\236\345\267\245\345\205\267.slnx"
new file mode 100644
index 0000000..f2ab10a
--- /dev/null
+++ "b/\347\240\201\347\245\236\345\267\245\345\205\267.slnx"
@@ -0,0 +1,22 @@
+<Solution>
+  <Configurations>
+    <Platform Name="Any CPU" />
+    <Platform Name="ARM" />
+    <Platform Name="iPhone" />
+    <Platform Name="iPhoneSimulator" />
+    <Platform Name="x64" />
+    <Platform Name="x86" />
+  </Configurations>
+  <Folder Name="/Others/">
+    <File Path=".editorconfig" />
+    <File Path=".gitignore" />
+    <File Path="Readme.MD" />
+  </Folder>
+  <Project Path="A1Lib/A1Lib.csproj" />
+  <Project Path="A2Lib/A2Lib.csproj" />
+  <Project Path="CrazyCoder/CoderWpf.csproj" />
+  <Project Path="XCoder/CrazyCoder.csproj" />
+  <Project Path="XCoderAv/XCoderAv.csproj" />
+  <Project Path="XCoderLinux/XCoderLinux.csproj" />
+  <Project Path="xDesktopInfo/xDesktopInfo.csproj" />
+</Solution>