Prechádzať zdrojové kódy

fix: 脚本创建任务出错

许俊杰 2 rokov pred
rodič
commit
c2b765a0ba

+ 0 - 1
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -18,7 +18,6 @@
     <PackageReference Include="AngleSharp" Version="1.0.1" />
     <PackageReference Include="AspectCore.Extensions.Reflection" Version="2.3.0" />
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
-    <PackageReference Include="DotNetCore.Compile.Environment" Version="3.2.0" />
     <PackageReference Include="FluentEmail.Smtp" Version="3.0.2" />
     <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.8.8.21" />
     <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.8.8.21" />

+ 1 - 1
Admin.NET/Admin.NET.Core/Job/DynamicJobCompiler.cs

@@ -14,7 +14,7 @@ public class DynamicJobCompiler : ISingleton
     {
         var jobAssembly = Schedular.CompileCSharpClassCode(script);
 
-        var jobType = jobAssembly.GetType("Admin.NET.Core");
+        var jobType = jobAssembly.GetTypes().FirstOrDefault(u => typeof(IJob).IsAssignableFrom(u));
 
         return jobType;
     }

+ 2 - 0
Admin.NET/Admin.NET.Core/Service/Job/DbJobPersistence.cs

@@ -85,6 +85,8 @@ public class DbJobPersistence : IJobPersistence
                     throw new NotSupportedException();
             }
 
+            //动态构建的 jobType 的程序集名称为随机名称,需重新设置
+            dbDetail.AssemblyName = jobType.Assembly.FullName!.Split(',')[0];
             var jobBuilder = JobBuilder.Create(jobType).LoadFrom(dbDetail);
 
             // 强行设置为不扫描 IJob 实现类 [Trigger] 特性触发器,否则 SchedulerBuilder.Create 会再次扫描,导致重复添加同名触发器