Kaynağa Gözat

单独把工具拆出来放到Tools工程,导表跟导Proto使用Tools.exe
cd Bin
dotnet Tools.dll --AppType=ExcelExporter
dotnet Tools.dll --AppType=Proto2CS

tanghai 4 yıl önce
ebeveyn
işleme
e6200b9a3a

+ 2 - 2
Book/1.1运行指南.md

@@ -17,9 +17,9 @@
 
 6. 用Rider打开 ET/Client-Server.sln 编译(**一定要全部工程编译,右键VS解决方案,全部编译**)
 
-7. 导表工具,编译完成后命令行进入 Bin 目录,执行 dotnet Server.dll --AppType=ExcelExporter  
+7. 导表工具,编译完成后命令行进入 Bin 目录,执行 dotnet Tools.dll --AppType=ExcelExporter  
 
-8. 导出协议工具,编译完成后进入 Bin 目录,执行 dotnet Server.dll --AppType=Proto2CS  
+8. 导出协议工具,编译完成后进入 Bin 目录,执行 dotnet Tools.dll --AppType=Proto2CS  
 
 9. Unity中双击Scenes目录中的Init场景,点击Play即可运行
 # 测试状态同步demo

+ 17 - 0
Client-Server.sln

@@ -41,6 +41,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.Mono", "Unity\Unity.M
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.ThirdParty", "Unity\Unity.ThirdParty.csproj", "{D2AD5BE1-263A-9A30-AB0F-DC5B08044350}"
 EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{7B755614-03A1-4EDB-8596-4CEDE942336E}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.App", "Tools\App\Tools.App.csproj", "{8926376D-98AA-4530-A1D4-CF6B45979C2C}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -231,6 +235,18 @@ Global
 		{D2AD5BE1-263A-9A30-AB0F-DC5B08044350}.Release|x64.Build.0 = Release|Any CPU
 		{D2AD5BE1-263A-9A30-AB0F-DC5B08044350}.Release|x86.ActiveCfg = Release|Any CPU
 		{D2AD5BE1-263A-9A30-AB0F-DC5B08044350}.Release|x86.Build.0 = Release|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Debug|x64.Build.0 = Debug|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Debug|x86.Build.0 = Debug|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Release|x64.ActiveCfg = Release|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Release|x64.Build.0 = Release|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Release|x86.ActiveCfg = Release|Any CPU
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -251,6 +267,7 @@ Global
 		{EC8FBBC4-59C8-438C-AE16-1762C269B928} = {D885C55E-8E9B-4837-938D-15A919188607}
 		{5910FA29-5797-199C-985B-FC9FC473328E} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
 		{D2AD5BE1-263A-9A30-AB0F-DC5B08044350} = {914C77C9-212A-4DD0-8D9A-074620E77FAA}
+		{8926376D-98AA-4530-A1D4-CF6B45979C2C} = {7B755614-03A1-4EDB-8596-4CEDE942336E}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {EABC01E3-3EB5-47EF-B46E-AAD8BB3585F1}

+ 1 - 1
Excel/win_startExcelExport.bat

@@ -1,3 +1,3 @@
 cd /d ../Bin
-dotnet Server.dll --AppType=ExcelExporter
+dotnet Tools.dll --AppType=ExcelExporter
 pause

+ 1 - 1
Proto/win_startProtoExport.bat

@@ -1,3 +1,3 @@
 cd /d ../Bin
-dotnet Server.dll --AppType=Proto2CS
+dotnet Tools.dll --AppType=Proto2CS
 pause

+ 0 - 34
Server/Hotfix/AppStart_Init.cs

@@ -7,40 +7,6 @@ namespace ET
     {
         protected override async ETTask Run(EventType.AppStart args)
         {
-            switch (Game.Options.AppType)
-            {
-                case AppType.ExcelExporter:
-                {
-                    Game.Options.Console = 1;
-                    try
-                    {
-                        ExcelExporter.Export();
-                    }
-                    catch (Exception e)
-                    {
-                        Log.Console(e.ToString());
-                        System.Environment.Exit(1);
-                    }
-                    System.Environment.Exit(0);
-                    return;
-                }
-                case AppType.Proto2CS:
-                {
-                    Game.Options.Console = 1;
-                    try
-                    {
-                        Proto2CS.Export();
-                    }
-                    catch (Exception e)
-                    {
-                        Log.Console(e.ToString());
-                        System.Environment.Exit(1);
-                    }
-                    System.Environment.Exit(0);
-                    return;
-                }
-            }
-
             Game.Scene.AddComponent<ConfigComponent>();
             await ConfigComponent.Instance.LoadAsync();
 

+ 0 - 0
Server/Model/ExcelExporter/ExcelExporter.cs → Tools/App/Apps/ExcelExporter/ExcelExporter.cs


+ 0 - 0
Server/Model/Proto2CS/Program.cs → Tools/App/Apps/Proto2CS/Proto2CS.cs


+ 63 - 0
Tools/App/Program.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Threading;
+using CommandLine;
+using NLog;
+
+namespace ET
+{
+    internal static class Program
+    {
+        private static int Main(string[] args)
+        {
+            AppDomain.CurrentDomain.UnhandledException += (sender, e) =>
+            {
+                Log.Error(e.ExceptionObject.ToString());
+            };
+
+            // 异步方法全部会回掉到主线程
+            SynchronizationContext.SetSynchronizationContext(ThreadSynchronizationContext.Instance);
+			
+            try
+            {		
+                Game.EventSystem.Add(typeof(Game).Assembly);
+				
+                ProtobufHelper.Init();
+                MongoRegister.Init();
+				
+                // 命令行参数
+                Options options = null;
+                Parser.Default.ParseArguments<Options>(args)
+                        .WithNotParsed(error => throw new Exception($"命令行格式错误!"))
+                        .WithParsed(o => { options = o; });
+
+                Options.Instance = options;
+
+                Log.ILog = new NLogger(Game.Options.AppType.ToString());
+                LogManager.Configuration.Variables["appIdFormat"] = $"{Game.Options.Process:000000}";
+				
+                Log.Info($"server start........................ {Game.Scene.Id}");
+				
+                switch (Game.Options.AppType)
+                {
+                    case AppType.ExcelExporter:
+                    {
+                        Game.Options.Console = 1;
+                        ExcelExporter.Export();
+                        return 0;
+                    }
+                    case AppType.Proto2CS:
+                    {
+                        Game.Options.Console = 1;
+                        Proto2CS.Export();
+                        return 0;
+                    }
+                }
+            }
+            catch (Exception e)
+            {
+                Log.Console(e.ToString());
+            }
+            return 1;
+        }
+    }
+}

+ 57 - 0
Tools/App/Tools.App.csproj

@@ -0,0 +1,57 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+    <PropertyGroup>
+        <OutputType>Exe</OutputType>
+        <TargetFramework>net6.0</TargetFramework>
+        <ImplicitUsings>false</ImplicitUsings>
+        <Nullable>disable</Nullable>
+        <AssemblyName>Tools</AssemblyName>
+        <RootNamespace>ET</RootNamespace>
+        <LangVersion>8</LangVersion>
+    </PropertyGroup>
+
+    <PropertyGroup>
+        <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
+        <SatelliteResourceLanguages>en</SatelliteResourceLanguages>
+    </PropertyGroup>
+
+    <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
+      <OutputPath>..\..\Bin\</OutputPath>
+      <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+      <DefineConstants>TRACECOREAPP;NOT_UNITY</DefineConstants>
+      <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+    </PropertyGroup>
+
+    <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
+      <OutputPath>..\..\Bin\</OutputPath>
+      <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+      <DefineConstants>TRACECOREAPP;NOT_UNITY</DefineConstants>
+      <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
+    </PropertyGroup>
+    
+    <ItemGroup>
+        <Compile Include="..\..\Unity\Codes\Model\Core\**\*.cs">
+            <Link>Core\%(RecursiveDir)%(FileName)%(Extension)</Link>
+        </Compile>
+        <Compile Include="..\..\Unity\Assets\Mono\Core\**\*.cs">
+            <Link>Core\%(RecursiveDir)%(FileName)%(Extension)</Link>
+        </Compile>
+
+        <Compile Include="..\..\Server\Model\Base\**\*.cs">
+            <Link>Base\%(RecursiveDir)%(FileName)%(Extension)</Link>
+        </Compile>
+
+        <Compile Include="..\..\Unity\Codes\Model\Module\Config\**\*.cs">
+            <Link>Module\Config\%(RecursiveDir)%(FileName)%(Extension)</Link>
+        </Compile>
+    </ItemGroup>
+    
+    <ItemGroup>
+      <ProjectReference Include="..\..\ThirdParty\ShareLib\ShareLib.csproj" />
+    </ItemGroup>
+    
+    <ItemGroup>
+      <Folder Include="Apps" />
+    </ItemGroup>
+
+</Project>