ソースを参照

fix(s8): restore net8.0 build so teammates can start after pull | server 1.0.562

S8ApprovalFlowRepairService 把 root.ToJsonString() 直接写进了 SqlSugar
SetColumns 的表达式树。ToJsonString 带可选参数,表达式树在 C# 12 下不允许
这种调用(CS0854);net10.0 用 C# 14 放行,net8.0 用 C# 12 直接编译失败。

插件是 net8.0;net10.0 双框架,而本地验证纪律只跑 --framework net10.0,
net8.0 从未被编译,错误就这样推到了远端:同事用 VS 编译整个解决方案时
插件 net8.0 编不出 dll,引用它的 AiDOP.Tests 级联报 CS0006,无法启动。

改法是把调用提到表达式树外先求值,行为不变。
dotnet build Admin.NET.sln(不带 --framework,全 TFM)0 Error。
YY968XX 5 日 前
親
コミット
ba87626d67

+ 3 - 3
server/Admin.NET.Web.Entry/Admin.NET.Web.Entry.csproj

@@ -11,9 +11,9 @@
     <GenerateSatelliteAssembliesForCore>true</GenerateSatelliteAssembliesForCore>
     <Copyright>Admin.NET</Copyright>
     <Description>Admin.NET 通用权限开发平台</Description>
-    <AssemblyVersion>1.0.561</AssemblyVersion>
-    <FileVersion>1.0.561</FileVersion>
-    <Version>1.0.561</Version>
+    <AssemblyVersion>1.0.562</AssemblyVersion>
+    <FileVersion>1.0.562</FileVersion>
+    <Version>1.0.562</Version>
   </PropertyGroup>
 
   <ItemGroup>

+ 4 - 1
server/Plugins/Admin.NET.Plugin.AiDOP/Service/S8/S8ApprovalFlowRepairService.cs

@@ -215,8 +215,11 @@ public class S8ApprovalFlowRepairService : ITransient
 
             if (!changed) continue;
 
+            // 先求值再进表达式树:ToJsonString 带可选参数,直接写进 SetColumns 的 lambda 里,
+            // 在 net8.0(C# 12)下会编译失败(CS0854),只有 net10.0(C# 14)放行。
+            var newFlowJson = root.ToJsonString();
             await _flowRep.Context.Updateable<Admin.NET.Plugin.ApprovalFlow.ApprovalFlow>()
-                .SetColumns(f => new Admin.NET.Plugin.ApprovalFlow.ApprovalFlow { FlowJson = root.ToJsonString() })
+                .SetColumns(f => new Admin.NET.Plugin.ApprovalFlow.ApprovalFlow { FlowJson = newFlowJson })
                 .Where(f => f.Id == flow.Id)
                 .ExecuteCommandAsync(ct);
         }