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
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 倍。
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>
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;
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)
{
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();
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>
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\" />
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
{
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)
{
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;
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];
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);
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)
{
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();
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>
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
{
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>
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)
{
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>