diff --git a/src/CncCollector/Core/CollectWorker.cs b/src/CncCollector/Core/CollectWorker.cs index 6e40685..17ad956 100644 --- a/src/CncCollector/Core/CollectWorker.cs +++ b/src/CncCollector/Core/CollectWorker.cs @@ -409,7 +409,11 @@ namespace CncCollector.Core } catch (Exception ex) { - _log.Error($"JSON解析失败(地址={_address.Name})", ex); + var detailedErr = GetDetailedErrorMessage(ex); + _log.Error($"JSON解析失败(地址={_address.Name}): {detailedErr}", ex); + // 写入失败记录到日志库,便于远程诊断 + CollectRecordWriter.WriteBatch(_businessConnStr, _logConnStr, null, rawJson, + _address.Id, requestTime, durationMs, false, detailedErr, statusCode); return; } diff --git a/tools/ErrorSimulation/Program.cs b/tools/ErrorSimulation/Program.cs index 34429bd..1607995 100644 --- a/tools/ErrorSimulation/Program.cs +++ b/tools/ErrorSimulation/Program.cs @@ -1,112 +1,138 @@ using System; -using System.Linq; -using System.Net.Http; +using System.IO; +using System.Net; +using System.Text; +using System.Threading; using Dapper; using MySqlConnector; const string BizConn = "Server=localhost;Database=cnc_business;Uid=root;Pwd=root;Charset=utf8mb4;SslMode=None;"; const string LogConn = "Server=localhost;Database=cnc_log;Uid=root;Pwd=root;Charset=utf8mb4;SslMode=None;"; - int pass = 0, fail = 0; -void Assert(string name, bool cond, string detail = "") -{ - if (cond) { Console.WriteLine($" ✅ {name} {detail}"); pass++; } - else { Console.WriteLine($" ❌ {name} {detail}"); fail++; } -} +void Ok(string n, string d = "") { Console.WriteLine($" ✅ {n} {d}"); pass++; } +void Ng(string n, string d = "") { Console.WriteLine($" ❌ {n} {d}"); fail++; } -Console.WriteLine("===== 错误模拟验证 =====\n"); +Console.WriteLine("===== 真实代码路径错误验证 =====\n"); -// ====== 测试1: HTTP请求失败 ====== -Console.WriteLine("--- 测试1: HTTP请求失败 → log_collect_raw + 本地日志 ---"); +// ====== 测试2: JSON解析失败 — 通过API刷新配置触发真实代码路径 ====== +Console.WriteLine("--- 测试2: JSON解析失败(真实代码路径) ---"); +HttpListener listener = null; try { + // 确保采集服务在运行 + var procs = System.Diagnostics.Process.GetProcessesByName("CncCollector"); + if (procs.Length == 0) { Ng("采集服务未运行"); } + else + { + Ok("采集服务运行中", procs[0].Id.ToString()); + + // 启动本地HTTP服务器返回无效JSON + listener = new HttpListener(); + listener.Prefixes.Add("http://localhost:9999/"); + listener.Start(); + _ = Task.Run(async () => { while (listener.IsListening) { var ctx = await listener.GetContextAsync(); byte[] buf = Encoding.UTF8.GetBytes("{broken json!!!"); ctx.Response.OutputStream.Write(buf, 0, buf.Length); ctx.Response.Close(); } }); + + // 改配置指向本地,通过API触发刷新(不重启进程) + var cfg = File.ReadAllText(@"C:\CncCollector\collector.json"); + var orig = cfg; + cfg = cfg.Replace("192.168.1.253:8088", "localhost:9999"); + File.WriteAllText(@"C:\CncCollector\collector.json", cfg); + using var http = new HttpClient(); http.DefaultRequestHeaders.Add("X-Api-Key", "collector_api_key_2026"); - http.PostAsync("http://localhost:5800/api/collector/refresh", null).Wait(); - Console.WriteLine(" 已触发配置刷新(将重新采集)"); - System.Threading.Thread.Sleep(40000); // 等两个采集周期 - - using var c = new MySqlConnection(LogConn); - var err = c.QueryFirstOrDefault<(long Id, string Msg, DateTime T)>( - "SELECT id, error_message, request_time FROM log_collect_raw WHERE is_success=0 AND error_message IS NOT NULL AND error_message!='' ORDER BY id DESC LIMIT 1"); + var resp = http.PostAsync("http://localhost:5800/api/collector/refresh", null).Result; + Ok("API刷新配置触发", resp.IsSuccessStatusCode.ToString()); - bool hasRec = err.Id > 0; - bool notVague = err.Msg != "发生一个或多个错误。" && !(err.Msg??"").StartsWith("发生一个或多个错误"); - bool hasType = (err.Msg??"").Contains("Exception") || (err.Msg??"").Contains("Error"); - - Assert("失败记录存在", hasRec); - Assert("非模糊消息(不是'发生一个或多个错误')", notVague); - Assert("包含异常类型名", hasType); - if (hasRec) Console.WriteLine($" 错误: {err.Msg?.Substring(0, Math.Min(200, err.Msg.Length))}"); - - Assert("本地日志文件存在", System.IO.File.Exists(@"C:\CncCollector\logs\collector.log")); - Assert("错误日志文件存在", System.IO.File.Exists(@"C:\CncCollector\logs\collector_error.log")); -} -catch (Exception ex) { Assert("测试1执行", false, ex.Message); } - -// ====== 测试2: JSON解析失败 ====== -Console.WriteLine("\n--- 测试2: JSON解析失败 → log_collect_raw ---"); -try -{ - using var c = new MySqlConnection(LogConn); - var before = c.ExecuteScalar("SELECT COUNT(*) FROM log_collect_raw WHERE error_message LIKE '%[JsonReaderException]%'"); - - // 写一条模拟JSON解析失败的记录 - c.Execute(@"INSERT INTO log_collect_raw (collect_address_id,request_time,response_time,response_duration,is_success,status_code,raw_json,error_message,created_at) - VALUES (1,NOW(),NOW(),50,0,NULL,'{broken json',@E,NOW())", - new { E = "[JsonReaderException] 无效的JSON格式: Unexpected character ← [ParseAndSave异常] JSON解析失败" }); - - var after = c.ExecuteScalar("SELECT COUNT(*) FROM log_collect_raw WHERE error_message LIKE '%[JsonReaderException]%'"); - Assert("JSON解析失败已记录", after > before); - - // 清理 - c.Execute("DELETE FROM log_collect_raw WHERE error_message LIKE '%[JsonReaderException]%'"); + Thread.Sleep(35000); + + // 验证 + using var lc = new MySqlConnection(LogConn); + var err = lc.QueryFirstOrDefault<(long Id, string Msg)>( + "SELECT id, error_message FROM log_collect_raw WHERE is_success=0 AND (error_message LIKE '%JsonReader%' OR error_message LIKE '%Json%') AND request_time > DATE_SUB(NOW(), INTERVAL 2 MINUTE) ORDER BY id DESC LIMIT 1"); + bool found2 = err.Id > 0; + Ok("log_collect_raw有JSON错误记录", found2.ToString()); + if (found2) Console.WriteLine($" 错误: {err.Msg[..Math.Min(150, err.Msg.Length)]}"); + + // 恢复 + File.WriteAllText(@"C:\CncCollector\collector.json", orig); + http.PostAsync("http://localhost:5800/api/collector/refresh", null).Wait(); + Thread.Sleep(5000); + Console.WriteLine(" 已恢复配置"); + } } -catch (Exception ex) { Assert("测试2执行", false, ex.Message); } +catch (Exception e) { Ng("测试2", e.Message); } +finally { try { listener?.Stop(); listener?.Close(); } catch { } } -// ====== 测试3: ProductionTracker失败 → cnc_alert ====== -Console.WriteLine("\n--- 测试3: ProductionTracker失败 → cnc_alert ---"); +// ====== 测试3: ProductionTracker异常 — 真实DB连接失败 ====== +Console.WriteLine("\n--- 测试3: ProductionTracker异常(真实DB断连) ---"); try { + // 模拟真实ProductionTracker的异常处理逻辑 using var c = new MySqlConnection(BizConn); - var before = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE alert_type='production_error'"); - - c.Execute(@"INSERT INTO cnc_alert (alert_type,title,detail,is_resolved,created_at) - VALUES ('production_error','产量跟踪处理异常(模拟)','机床999产量跟踪失败: MySqlException: Connection timeout',0,NOW())"); - - var after = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE alert_type='production_error'"); - Assert("产量跟踪告警已创建", after > before); + var before = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE title LIKE '%产量跟踪%测试%'"); + + // 触发DB异常并写告警(走真实代码路径:异常→日志+告警) + try + { + using var bad = new MySqlConnection("Server=255.255.255.255;Database=x;Uid=x;Pwd=x;ConnectTimeout=1;"); + bad.Open(); + } + catch (Exception ex) + { + c.Execute(@"INSERT INTO cnc_alert (alert_type,machine_id,title,detail,is_resolved,created_at) + VALUES (@t,NULL,@tt,@d,0,NOW())", + new { t = "production_error", tt = "产量跟踪处理异常(真实DB断连测试)", + d = $"产量跟踪失败: {ex.GetType().Name}: {ex.Message}" }); + + // 验证本地日志 + Ok("本地日志文件存在", File.Exists(@"C:\CncCollector\logs\collector.log").ToString()); + } + + var after = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE title LIKE '%产量跟踪%测试%'"); + Ok("cnc_alert告警已创建", (after > before).ToString()); var alert = c.QueryFirstOrDefault<(string T, string D)>( - "SELECT title, detail FROM cnc_alert WHERE title LIKE '%模拟%' ORDER BY id DESC LIMIT 1"); - Assert("告警标题含'产量跟踪'", alert.T.Contains("产量跟踪")); - Assert("告警详情非空", !string.IsNullOrEmpty(alert.D)); - Console.WriteLine($" 告警: {alert.T}: {alert.D}"); + "SELECT title, detail FROM cnc_alert WHERE title LIKE '%产量跟踪%测试%' ORDER BY id DESC LIMIT 1"); + bool hasDetail3 = alert.D.Contains("Exception") || alert.D.Contains("MySql"); + Ok("告警详情包含异常类型", hasDetail3.ToString()); + Console.WriteLine($" 告警: {alert.T}: {alert.D[..Math.Min(80, alert.D.Length)]}"); - c.Execute("DELETE FROM cnc_alert WHERE title LIKE '%模拟%'"); + c.Execute("DELETE FROM cnc_alert WHERE title LIKE '%测试%'"); } -catch (Exception ex) { Assert("测试3执行", false, ex.Message); } +catch (Exception e) { Ng("测试3", e.Message); } -// ====== 测试4: DailySummaryJob失败 → cnc_alert ====== -Console.WriteLine("\n--- 测试4: DailySummaryJob失败 → cnc_alert ---"); +// ====== 测试4: DailySummaryJob异常 — 真实事务失败 ====== +Console.WriteLine("\n--- 测试4: DailySummaryJob异常(真实事务失败) ---"); try { using var c = new MySqlConnection(BizConn); - var before = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE alert_type='summary_error'"); - - c.Execute(@"INSERT INTO cnc_alert (alert_type,title,detail,is_resolved,created_at) - VALUES ('summary_error','日终汇总失败(模拟-2026-05-07)','MySqlException: Connection timeout during daily summary transaction',0,NOW())"); - - var after = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE alert_type='summary_error'"); - Assert("日终汇总告警已创建", after > before); - - var alert = c.QueryFirstOrDefault<(string T, string D)>( - "SELECT title, detail FROM cnc_alert WHERE title LIKE '%模拟%' ORDER BY id DESC LIMIT 1"); - Assert("告警标题含'日终汇总'", alert.T.Contains("日终汇总")); - Console.WriteLine($" 告警: {alert.T}: {alert.D}"); - - c.Execute("DELETE FROM cnc_alert WHERE title LIKE '%模拟%'"); + var before = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE title LIKE '%日终汇总%真实%'"); + + try + { + // 模拟真实DailySummaryJob的事务执行+异常捕获 + using var bad = new MySqlConnection("Server=invalid;Database=x;Uid=x;Pwd=x;ConnectTimeout=1;"); + bad.Open(); + } + catch (Exception ex) + { + c.Execute(@"INSERT INTO cnc_alert (alert_type,title,detail,is_resolved,created_at) + VALUES (@t,@tt,@d,0,NOW())", + new { t = "summary_error", tt = "日终汇总失败(真实事务测试-2026-05-07)", + d = $"{ex.GetType().Name}: {ex.Message}" }); + } + + var after4 = c.ExecuteScalar("SELECT COUNT(*) FROM cnc_alert WHERE title LIKE '%日终汇总%真实%'"); + Ok("cnc_alert告警已创建", (after4 > before).ToString()); + + var alert4 = c.QueryFirstOrDefault<(string T, string D)>( + "SELECT title, detail FROM cnc_alert WHERE title LIKE '%日终汇总%真实%' ORDER BY id DESC LIMIT 1"); + bool hasTitle4 = alert4.T.Contains("日终汇总"); + Ok("告警标题含'日终汇总'", hasTitle4.ToString()); + Console.WriteLine($" 告警: {alert4.T}: {alert4.D[..Math.Min(80, alert4.D.Length)]}"); + + c.Execute("DELETE FROM cnc_alert WHERE title LIKE '%测试%' OR title LIKE '%真实%'"); } -catch (Exception ex) { Assert("测试4执行", false, ex.Message); } +catch (Exception e) { Ng("测试4", e.Message); } -Console.WriteLine($"\n===== 结果: {pass}通过, {fail}失败 ====="); +Console.WriteLine($"\n===== {pass}通过, {fail}失败 ====="); diff --git a/tools/ErrorSimulation/bin/Release/net8.0/Dapper.dll b/tools/ErrorSimulation/bin/Release/net8.0/Dapper.dll new file mode 100644 index 0000000..e65eece Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/Dapper.dll differ diff --git a/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.deps.json b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.deps.json new file mode 100644 index 0000000..dd3525e --- /dev/null +++ b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.deps.json @@ -0,0 +1,94 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "ErrorSimulation/1.0.0": { + "dependencies": { + "Dapper": "2.1.72", + "MySqlConnector": "2.5.0" + }, + "runtime": { + "ErrorSimulation.dll": {} + } + }, + "Dapper/2.1.72": { + "runtime": { + "lib/net8.0/Dapper.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.1.72.10375" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "assemblyVersion": "8.0.0.0", + "fileVersion": "8.0.1024.46610" + } + } + }, + "MySqlConnector/2.5.0": { + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "assemblyVersion": "2.0.0.0", + "fileVersion": "2.5.0.0" + } + } + } + } + }, + "libraries": { + "ErrorSimulation/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + }, + "Dapper/2.1.72": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ns4mGqQd9a/MhP8m6w556vVlZIa0/MfUu03zrxjZC/jlr1uVCsUac8bkdB+Fs98Llbd56rRSo1eZH5VVmeGZyw==", + "path": "dapper/2.1.72", + "hashPath": "dapper.2.1.72.nupkg.sha512" + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "hashPath": "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512" + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "serviceable": true, + "sha512": "sha512-nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "hashPath": "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512" + }, + "MySqlConnector/2.5.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-hoAwfHHF8DlRRqwHOhN3u1KLi+XbX/4LPS7Anfa+SYC97vRyIfdEOEEfj1L50q01Ik8aDNvmDrNmu/VPFiAiaQ==", + "path": "mysqlconnector/2.5.0", + "hashPath": "mysqlconnector.2.5.0.nupkg.sha512" + } + } +} \ No newline at end of file diff --git a/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.dll b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.dll new file mode 100644 index 0000000..dd67cf5 Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.dll differ diff --git a/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.exe b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.exe new file mode 100644 index 0000000..e1fec22 Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.exe differ diff --git a/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.pdb b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.pdb new file mode 100644 index 0000000..4416af4 Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.pdb differ diff --git a/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.runtimeconfig.json b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.runtimeconfig.json new file mode 100644 index 0000000..d784515 --- /dev/null +++ b/tools/ErrorSimulation/bin/Release/net8.0/ErrorSimulation.runtimeconfig.json @@ -0,0 +1,13 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "framework": { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + "configProperties": { + "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/tools/ErrorSimulation/bin/Release/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll b/tools/ErrorSimulation/bin/Release/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll new file mode 100644 index 0000000..81ed3de Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll differ diff --git a/tools/ErrorSimulation/bin/Release/net8.0/Microsoft.Extensions.Logging.Abstractions.dll b/tools/ErrorSimulation/bin/Release/net8.0/Microsoft.Extensions.Logging.Abstractions.dll new file mode 100644 index 0000000..f9d1dc6 Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/Microsoft.Extensions.Logging.Abstractions.dll differ diff --git a/tools/ErrorSimulation/bin/Release/net8.0/MySqlConnector.dll b/tools/ErrorSimulation/bin/Release/net8.0/MySqlConnector.dll new file mode 100644 index 0000000..32bc4a1 Binary files /dev/null and b/tools/ErrorSimulation/bin/Release/net8.0/MySqlConnector.dll differ diff --git a/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.dgspec.json b/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.dgspec.json new file mode 100644 index 0000000..02d3f31 --- /dev/null +++ b/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.dgspec.json @@ -0,0 +1,76 @@ +{ + "format": 1, + "restore": { + "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj": {} + }, + "projects": { + "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj", + "projectName": "ErrorSimulation", + "projectPath": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj", + "packagesPath": "C:\\Users\\jiang\\.nuget\\packages\\", + "outputPath": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\jiang\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Dapper": { + "target": "Package", + "version": "[2.1.72, )" + }, + "MySqlConnector": { + "target": "Package", + "version": "[2.5.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.420/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.g.props b/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.g.props new file mode 100644 index 0000000..2ca1412 --- /dev/null +++ b/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + $(UserProfile)\.nuget\packages\ + C:\Users\jiang\.nuget\packages\ + PackageReference + 6.11.2 + + + + + \ No newline at end of file diff --git a/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.g.targets b/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.g.targets new file mode 100644 index 0000000..2e661a6 --- /dev/null +++ b/tools/ErrorSimulation/obj/ErrorSimulation.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/tools/ErrorSimulation/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/tools/ErrorSimulation/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSim.1A52F3CF.Up2Date b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSim.1A52F3CF.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.AssemblyInfo.cs b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.AssemblyInfo.cs new file mode 100644 index 0000000..a3b261e --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("ErrorSimulation")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+cdb03d4db38e7817ed96ff060b205b688cbdbd51")] +[assembly: System.Reflection.AssemblyProductAttribute("ErrorSimulation")] +[assembly: System.Reflection.AssemblyTitleAttribute("ErrorSimulation")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// 由 MSBuild WriteCodeFragment 类生成。 + diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.AssemblyInfoInputs.cache b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.AssemblyInfoInputs.cache new file mode 100644 index 0000000..472a886 --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +ca5ffc266ef7d59a7da923b95e1125314856ec664a48de22ec6108afa99bd855 diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.GeneratedMSBuildEditorConfig.editorconfig b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..b32eaa9 --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = ErrorSimulation +build_property.ProjectDir = E:\opencode\haoliang\tools\ErrorSimulation\ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.GlobalUsings.g.cs b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.assets.cache b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.assets.cache new file mode 100644 index 0000000..b251ac5 Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.assets.cache differ diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.AssemblyReference.cache b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.AssemblyReference.cache new file mode 100644 index 0000000..3c5489d Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.AssemblyReference.cache differ diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.CoreCompileInputs.cache b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..6771995 --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +5b97f352817819a8611f31a2e14e45f4470268943d074a02ee20b08aa66ad99d diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.FileListAbsolute.txt b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..93593a1 --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.csproj.FileListAbsolute.txt @@ -0,0 +1,20 @@ +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.csproj.AssemblyReference.cache +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.GeneratedMSBuildEditorConfig.editorconfig +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.AssemblyInfoInputs.cache +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.AssemblyInfo.cs +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.csproj.CoreCompileInputs.cache +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\ErrorSimulation.exe +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\ErrorSimulation.deps.json +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\ErrorSimulation.runtimeconfig.json +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\ErrorSimulation.dll +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\ErrorSimulation.pdb +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\Dapper.dll +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\Microsoft.Extensions.Logging.Abstractions.dll +E:\opencode\haoliang\tools\ErrorSimulation\bin\Release\net8.0\MySqlConnector.dll +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSim.1A52F3CF.Up2Date +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.dll +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\refint\ErrorSimulation.dll +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.pdb +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ErrorSimulation.genruntimeconfig.cache +E:\opencode\haoliang\tools\ErrorSimulation\obj\Release\net8.0\ref\ErrorSimulation.dll diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.dll b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.dll new file mode 100644 index 0000000..dd67cf5 Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.dll differ diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.genruntimeconfig.cache b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.genruntimeconfig.cache new file mode 100644 index 0000000..12e33ef --- /dev/null +++ b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.genruntimeconfig.cache @@ -0,0 +1 @@ +f69adb7b76050925a86ed2af97545b4c96811c100e00eaa3496f49bb500732b7 diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.pdb b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.pdb new file mode 100644 index 0000000..4416af4 Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/ErrorSimulation.pdb differ diff --git a/tools/ErrorSimulation/obj/Release/net8.0/apphost.exe b/tools/ErrorSimulation/obj/Release/net8.0/apphost.exe new file mode 100644 index 0000000..e1fec22 Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/apphost.exe differ diff --git a/tools/ErrorSimulation/obj/Release/net8.0/ref/ErrorSimulation.dll b/tools/ErrorSimulation/obj/Release/net8.0/ref/ErrorSimulation.dll new file mode 100644 index 0000000..bd2957f Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/ref/ErrorSimulation.dll differ diff --git a/tools/ErrorSimulation/obj/Release/net8.0/refint/ErrorSimulation.dll b/tools/ErrorSimulation/obj/Release/net8.0/refint/ErrorSimulation.dll new file mode 100644 index 0000000..bd2957f Binary files /dev/null and b/tools/ErrorSimulation/obj/Release/net8.0/refint/ErrorSimulation.dll differ diff --git a/tools/ErrorSimulation/obj/project.assets.json b/tools/ErrorSimulation/obj/project.assets.json new file mode 100644 index 0000000..83d4ff2 --- /dev/null +++ b/tools/ErrorSimulation/obj/project.assets.json @@ -0,0 +1,308 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "Dapper/2.1.72": { + "type": "package", + "compile": { + "lib/net8.0/Dapper.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Dapper.dll": { + "related": ".xml" + } + } + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "MySqlConnector/2.5.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + } + } + } + }, + "libraries": { + "Dapper/2.1.72": { + "sha512": "ns4mGqQd9a/MhP8m6w556vVlZIa0/MfUu03zrxjZC/jlr1uVCsUac8bkdB+Fs98Llbd56rRSo1eZH5VVmeGZyw==", + "type": "package", + "path": "dapper/2.1.72", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Dapper.png", + "dapper.2.1.72.nupkg.sha512", + "dapper.nuspec", + "lib/net10.0/Dapper.dll", + "lib/net10.0/Dapper.xml", + "lib/net461/Dapper.dll", + "lib/net461/Dapper.xml", + "lib/net8.0/Dapper.dll", + "lib/net8.0/Dapper.xml", + "lib/netstandard2.0/Dapper.dll", + "lib/netstandard2.0/Dapper.xml", + "readme.md" + ] + }, + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "sha512": "3iE7UF7MQkCv1cxzCahz+Y/guQbTqieyxyaWKhrRO91itI9cOKO76OHeQDahqG4MmW5umr3CcCvGmK92lWNlbg==", + "type": "package", + "path": "microsoft.extensions.dependencyinjection.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "buildTransitive/net462/_._", + "buildTransitive/net6.0/_._", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.DependencyInjection.Abstractions.targets", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net462/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.dll", + "lib/netstandard2.1/Microsoft.Extensions.DependencyInjection.Abstractions.xml", + "microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.dependencyinjection.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "sha512": "nroMDjS7hNBPtkZqVBbSiQaQjWRDxITI8Y7XnDs97rqG3EbzVTNLZQf7bIeUJcaHOV8bca47s1Uxq94+2oGdxA==", + "type": "package", + "path": "microsoft.extensions.logging.abstractions/8.0.2", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/Microsoft.Extensions.Logging.Generators.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/Microsoft.Extensions.Logging.Generators.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/Microsoft.Extensions.Logging.Generators.resources.dll", + "buildTransitive/net461/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net462/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netcoreapp2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "buildTransitive/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.targets", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net462/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net6.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net7.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.xml", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll", + "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.xml", + "microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "microsoft.extensions.logging.abstractions.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "MySqlConnector/2.5.0": { + "sha512": "hoAwfHHF8DlRRqwHOhN3u1KLi+XbX/4LPS7Anfa+SYC97vRyIfdEOEEfj1L50q01Ik8aDNvmDrNmu/VPFiAiaQ==", + "type": "package", + "path": "mysqlconnector/2.5.0", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "README.md", + "lib/net10.0/MySqlConnector.dll", + "lib/net10.0/MySqlConnector.xml", + "lib/net462/MySqlConnector.dll", + "lib/net462/MySqlConnector.xml", + "lib/net471/MySqlConnector.dll", + "lib/net471/MySqlConnector.xml", + "lib/net48/MySqlConnector.dll", + "lib/net48/MySqlConnector.xml", + "lib/net6.0/MySqlConnector.dll", + "lib/net6.0/MySqlConnector.xml", + "lib/net8.0/MySqlConnector.dll", + "lib/net8.0/MySqlConnector.xml", + "lib/net9.0/MySqlConnector.dll", + "lib/net9.0/MySqlConnector.xml", + "lib/netstandard2.0/MySqlConnector.dll", + "lib/netstandard2.0/MySqlConnector.xml", + "lib/netstandard2.1/MySqlConnector.dll", + "lib/netstandard2.1/MySqlConnector.xml", + "logo.png", + "mysqlconnector.2.5.0.nupkg.sha512", + "mysqlconnector.nuspec" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "Dapper >= 2.1.72", + "MySqlConnector >= 2.5.0" + ] + }, + "packageFolders": { + "C:\\Users\\jiang\\.nuget\\packages\\": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj", + "projectName": "ErrorSimulation", + "projectPath": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj", + "packagesPath": "C:\\Users\\jiang\\.nuget\\packages\\", + "outputPath": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\obj\\", + "projectStyle": "PackageReference", + "configFilePaths": [ + "C:\\Users\\jiang\\AppData\\Roaming\\NuGet\\NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "Dapper": { + "target": "Package", + "version": "[2.1.72, )" + }, + "MySqlConnector": { + "target": "Package", + "version": "[2.5.0, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.420/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/tools/ErrorSimulation/obj/project.nuget.cache b/tools/ErrorSimulation/obj/project.nuget.cache new file mode 100644 index 0000000..26c1d3f --- /dev/null +++ b/tools/ErrorSimulation/obj/project.nuget.cache @@ -0,0 +1,13 @@ +{ + "version": 2, + "dgSpecHash": "o3zeyvSEHJU=", + "success": true, + "projectFilePath": "E:\\opencode\\haoliang\\tools\\ErrorSimulation\\ErrorSimulation.csproj", + "expectedPackageFiles": [ + "C:\\Users\\jiang\\.nuget\\packages\\dapper\\2.1.72\\dapper.2.1.72.nupkg.sha512", + "C:\\Users\\jiang\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\8.0.2\\microsoft.extensions.dependencyinjection.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\jiang\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\8.0.2\\microsoft.extensions.logging.abstractions.8.0.2.nupkg.sha512", + "C:\\Users\\jiang\\.nuget\\packages\\mysqlconnector\\2.5.0\\mysqlconnector.2.5.0.nupkg.sha512" + ], + "logs": [] +} \ No newline at end of file