diff --git a/.gitignore b/.gitignore
index 94d1d68..dce36b2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -40,3 +40,4 @@ bld/
/NewLife.Net.dll
/NewLife.Core.pdb
/NewLife.Core.dll
+/lib
diff --git a/NuGet.Config b/NuGet.Config
new file mode 100644
index 0000000..1af087f
--- /dev/null
+++ b/NuGet.Config
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+ <packageSources>
+ <add key="Telerik UI for WPF 2020.1.218" value="C:\Program Files (x86)\Progress\Telerik UI for WPF R1 2020\Binaries\NetCore\NuGet" />
+ </packageSources>
+</configuration>
\ No newline at end of file
diff --git a/X5Coder/App.xaml b/X5Coder/App.xaml
new file mode 100644
index 0000000..adb8c87
--- /dev/null
+++ b/X5Coder/App.xaml
@@ -0,0 +1,9 @@
+<Application x:Class="X5Coder.App"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="clr-namespace:X5Coder"
+ StartupUri="MainWindow.xaml">
+ <Application.Resources>
+
+ </Application.Resources>
+</Application>
diff --git a/X5Coder/App.xaml.cs b/X5Coder/App.xaml.cs
new file mode 100644
index 0000000..b46cd65
--- /dev/null
+++ b/X5Coder/App.xaml.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+using NewLife.Log;
+
+namespace X5Coder
+{
+ /// <summary>
+ /// App.xaml 的交互逻辑
+ /// </summary>
+ public partial class App : Application
+ {
+ public App()
+ {
+ this.InitializeComponent();
+ }
+
+ protected override void OnStartup(StartupEventArgs e)
+ {
+#if NET45
+ XTrace.UseWinForm();
+#endif
+
+ base.OnStartup(e);
+ }
+ }
+}
\ No newline at end of file
diff --git a/X5Coder/Images/leaf.ico b/X5Coder/Images/leaf.ico
new file mode 100644
index 0000000..31fa6dd
Binary files /dev/null and b/X5Coder/Images/leaf.ico differ
diff --git a/X5Coder/MainWindow.xaml b/X5Coder/MainWindow.xaml
new file mode 100644
index 0000000..e1d0c42
--- /dev/null
+++ b/X5Coder/MainWindow.xaml
@@ -0,0 +1,37 @@
+<Window
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:local="clr-namespace:X5Coder"
+ x:Class="X5Coder.MainWindow"
+ mc:Ignorable="d"
+ UseLayoutRounding="True"
+ Title="新生命码神工具" Height="450" Width="800" WindowStartupLocation="CenterScreen">
+ <Grid>
+ <Menu>
+ <MenuItem Header="开发工具">
+ <MenuItem Header="正则表达式"/>
+ <MenuItem Header="图标水印" />
+ <MenuItem Header="加密解密"/>
+ <MenuItem Header="语音助手"/>
+ <Separator/>
+ <MenuItem Header="文件夹统计"/>
+ <MenuItem Header="文件编码"/>
+ </MenuItem>
+ <MenuItem Header="数据工具">
+ <MenuItem Header="数据建模"/>
+ </MenuItem>
+ <MenuItem Header="网络通信">
+ <MenuItem Header="网络工具"/>
+ <MenuItem Header="RPC工具" />
+ <MenuItem Header="串口工具"/>
+ <MenuItem Header="地图接口"/>
+ </MenuItem>
+ <MenuItem Header="帮助">
+ <MenuItem Header="检查更新"/>
+ <MenuItem Header="关于"/>
+ </MenuItem>
+ </Menu>
+ </Grid>
+</Window>
diff --git a/X5Coder/MainWindow.xaml.cs b/X5Coder/MainWindow.xaml.cs
new file mode 100644
index 0000000..b8072ba
--- /dev/null
+++ b/X5Coder/MainWindow.xaml.cs
@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace X5Coder
+{
+ /// <summary>
+ /// MainWindow.xaml 的交互逻辑
+ /// </summary>
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ }
+ }
+}
diff --git a/X5Coder/X5Coder.csproj b/X5Coder/X5Coder.csproj
new file mode 100644
index 0000000..44e0734
--- /dev/null
+++ b/X5Coder/X5Coder.csproj
@@ -0,0 +1,48 @@
+<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
+
+ <PropertyGroup>
+ <OutputType>WinExe</OutputType>
+ <TargetFrameworks>net45;netcoreapp3.1</TargetFrameworks>
+ <UseWPF>true</UseWPF>
+ <AssemblyTitle>新生命码神工具</AssemblyTitle>
+ <Description>众多开发者工具</Description>
+ <Company>新生命开发团队</Company>
+ <Copyright>©2002-2020 新生命开发团队</Copyright>
+ <Version>8.0.2020.0425</Version>
+ <FileVersion>8.0.2020.0425</FileVersion>
+ <AssemblyVersion>8.0.*</AssemblyVersion>
+ <Deterministic>false</Deterministic>
+ <ApplicationIcon>Images\leaf.ico</ApplicationIcon>
+ <OutputPath>..\Bin\</OutputPath>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <DefineConstants>TRACE</DefineConstants>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(Configuration)'=='Debug'">
+ <DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(TargetFramework)'=='net45'">
+ <DefineConstants>$(DefineConstants);__WIN__;NET45</DefineConstants>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(TargetFramework)'=='netcoreapp3.1'">
+ <DefineConstants>$(DefineConstants);__WIN__;NC30;__CORE__</DefineConstants>
+ </PropertyGroup>
+ <ItemGroup>
+ <None Remove="Images\leaf.ico" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <PackageReference Include="NewLife.Core" Version="8.7.2020.501" />
+ <PackageReference Include="NewLife.XCode" Version="9.17.2020.501" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Resource Include="Images\leaf.ico">
+ <CopyToOutputDirectory>Never</CopyToOutputDirectory>
+ </Resource>
+ </ItemGroup>
+
+</Project>
\ No newline at end of file
diff --git "a/\347\240\201\347\245\236\345\267\245\345\205\267.sln" "b/\347\240\201\347\245\236\345\267\245\345\205\267.sln"
index 0910a41..5f73cc9 100644
--- "a/\347\240\201\347\245\236\345\267\245\345\205\267.sln"
+++ "b/\347\240\201\347\245\236\345\267\245\345\205\267.sln"
@@ -18,6 +18,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XCoder30", "XCoder30\XCoder
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "XCoderLinux", "XCoderLinux\XCoderLinux.csproj", "{8D88837E-7C35-424E-8937-6CD7CF79517E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "X5Coder", "X5Coder\X5Coder.csproj", "{B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -130,6 +132,30 @@ Global
{8D88837E-7C35-424E-8937-6CD7CF79517E}.Release|x64.Build.0 = Release|Any CPU
{8D88837E-7C35-424E-8937-6CD7CF79517E}.Release|x86.ActiveCfg = Release|Any CPU
{8D88837E-7C35-424E-8937-6CD7CF79517E}.Release|x86.Build.0 = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|ARM.ActiveCfg = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|ARM.Build.0 = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|iPhone.ActiveCfg = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|iPhone.Build.0 = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|x64.Build.0 = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Debug|x86.Build.0 = Debug|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|ARM.ActiveCfg = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|ARM.Build.0 = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|iPhone.ActiveCfg = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|iPhone.Build.0 = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|x64.ActiveCfg = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|x64.Build.0 = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|x86.ActiveCfg = Release|Any CPU
+ {B0EAFF38-1A6E-4ED1-9491-5C22E9734FE4}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE