解决源码生成失败的问题

This commit is contained in:
陈益 2025-04-28 22:35:19 +08:00
parent 0b2f2447c5
commit 5c19d02fdd
14 changed files with 47 additions and 153 deletions

View File

@ -62,7 +62,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "0.Docs", "0.Docs", "{D8346C
readme.md = readme.md readme.md = readme.md
EndProjectSection EndProjectSection
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.CollectBus.IncrementalGenerator", "shared\JiShe.CollectBus.IncrementalGenerator\JiShe.CollectBus.IncrementalGenerator.csproj", "{828D20BC-454E-0467-B29D-429B25F1E0CA}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.CollectBus.Analyzers.Attributes", "shared\JiShe.CollectBus.Analyzers.Attributes\JiShe.CollectBus.Analyzers.Attributes.csproj", "{D834B28F-E336-4E05-A5DD-DAF68E3342AA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JiShe.CollectBus.Analyzers", "shared\JiShe.CollectBus.Analyzers\JiShe.CollectBus.Analyzers.csproj", "{00DF55EE-82CF-B5AA-F8C7-0E5B823FBC24}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -150,10 +152,14 @@ Global
{75B7D419-C261-577D-58D6-AA3ACED9129F}.Debug|Any CPU.Build.0 = Debug|Any CPU {75B7D419-C261-577D-58D6-AA3ACED9129F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{75B7D419-C261-577D-58D6-AA3ACED9129F}.Release|Any CPU.ActiveCfg = Release|Any CPU {75B7D419-C261-577D-58D6-AA3ACED9129F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{75B7D419-C261-577D-58D6-AA3ACED9129F}.Release|Any CPU.Build.0 = Release|Any CPU {75B7D419-C261-577D-58D6-AA3ACED9129F}.Release|Any CPU.Build.0 = Release|Any CPU
{828D20BC-454E-0467-B29D-429B25F1E0CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D834B28F-E336-4E05-A5DD-DAF68E3342AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{828D20BC-454E-0467-B29D-429B25F1E0CA}.Debug|Any CPU.Build.0 = Debug|Any CPU {D834B28F-E336-4E05-A5DD-DAF68E3342AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{828D20BC-454E-0467-B29D-429B25F1E0CA}.Release|Any CPU.ActiveCfg = Release|Any CPU {D834B28F-E336-4E05-A5DD-DAF68E3342AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{828D20BC-454E-0467-B29D-429B25F1E0CA}.Release|Any CPU.Build.0 = Release|Any CPU {D834B28F-E336-4E05-A5DD-DAF68E3342AA}.Release|Any CPU.Build.0 = Release|Any CPU
{00DF55EE-82CF-B5AA-F8C7-0E5B823FBC24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{00DF55EE-82CF-B5AA-F8C7-0E5B823FBC24}.Debug|Any CPU.Build.0 = Debug|Any CPU
{00DF55EE-82CF-B5AA-F8C7-0E5B823FBC24}.Release|Any CPU.ActiveCfg = Release|Any CPU
{00DF55EE-82CF-B5AA-F8C7-0E5B823FBC24}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
@ -179,7 +185,8 @@ Global
{8A61DF78-069B-40B5-8811-614E2960443E} = {3C3F9DB2-EC97-4464-B49F-BF1A0C2B46DC} {8A61DF78-069B-40B5-8811-614E2960443E} = {3C3F9DB2-EC97-4464-B49F-BF1A0C2B46DC}
{E27377CC-E2D3-4237-060F-96EA214D3129} = {3C3F9DB2-EC97-4464-B49F-BF1A0C2B46DC} {E27377CC-E2D3-4237-060F-96EA214D3129} = {3C3F9DB2-EC97-4464-B49F-BF1A0C2B46DC}
{75B7D419-C261-577D-58D6-AA3ACED9129F} = {3C3F9DB2-EC97-4464-B49F-BF1A0C2B46DC} {75B7D419-C261-577D-58D6-AA3ACED9129F} = {3C3F9DB2-EC97-4464-B49F-BF1A0C2B46DC}
{828D20BC-454E-0467-B29D-429B25F1E0CA} = {EBF7C01F-9B4F-48E6-8418-2CBFDA51EB0B} {D834B28F-E336-4E05-A5DD-DAF68E3342AA} = {EBF7C01F-9B4F-48E6-8418-2CBFDA51EB0B}
{00DF55EE-82CF-B5AA-F8C7-0E5B823FBC24} = {EBF7C01F-9B4F-48E6-8418-2CBFDA51EB0B}
EndGlobalSection EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD} SolutionGuid = {4324B3B4-B60B-4E3C-91D8-59576B4E26DD}

View File

@ -10,8 +10,11 @@
<PackageReference Include="Volo.Abp" Version="8.3.3" /> <PackageReference Include="Volo.Abp" Version="8.3.3" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\shared\JiShe.CollectBus.Analyzers.Attributes\JiShe.CollectBus.Analyzers.Attributes.csproj"/>
<ProjectReference Include="..\..\shared\JiShe.CollectBus.Analyzers\JiShe.CollectBus.Analyzers.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
<ProjectReference Include="..\..\shared\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj" /> <ProjectReference Include="..\..\shared\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj" />
<ProjectReference Include="..\..\shared\JiShe.CollectBus.IncrementalGenerator\JiShe.CollectBus.IncrementalGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,4 +1,4 @@
using JiShe.CollectBus.Common; using JiShe.CollectBus.Analyzers.Attributes;
using JiShe.CollectBus.IoTDB.Attribute; using JiShe.CollectBus.IoTDB.Attribute;
using JiShe.CollectBus.IoTDB.Enums; using JiShe.CollectBus.IoTDB.Enums;

View File

@ -1,6 +1,6 @@
using JiShe.CollectBus.Common; using JiShe.CollectBus.Analyzers.Attributes;
using JiShe.CollectBus.IoTDB.Attribute; using JiShe.CollectBus.IoTDB.Attribute;
using JiShe.CollectBus.IoTDB.Enums; using JiShe.CollectBus.IoTDB.Enums;
namespace JiShe.CollectBus.IoTDB.Model namespace JiShe.CollectBus.IoTDB.Model
{ {

View File

@ -66,7 +66,7 @@ public class SampleAppService : CollectBusAppService, ISampleAppService, IKafkaS
IssuedMessageHexString = "messageHexString", IssuedMessageHexString = "messageHexString",
Timestamps = testTime// DateTimeOffset.UtcNow.ToUnixTimeNanoseconds()//testTime.GetDateTimeOffset().ToUnixTimeNanoseconds(), Timestamps = testTime// DateTimeOffset.UtcNow.ToUnixTimeNanoseconds()//testTime.GetDateTimeOffset().ToUnixTimeNanoseconds(),
}; };
//ElectricityMeterTreeModelExtension //ElectricityMeterExtension.get
await _iotDBProvider.InsertAsync(meter); await _iotDBProvider.InsertAsync(meter);
} }

View File

@ -1,9 +1,4 @@
using System; using JiShe.CollectBus.Analyzers.Attributes;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JiShe.CollectBus.Common;
using JiShe.CollectBus.IoTDB.Attribute; using JiShe.CollectBus.IoTDB.Attribute;
using JiShe.CollectBus.IoTDB.Enums; using JiShe.CollectBus.IoTDB.Enums;
using JiShe.CollectBus.IoTDB.Model; using JiShe.CollectBus.IoTDB.Model;

View File

@ -1,7 +1,7 @@
using JiShe.CollectBus.Common; using JiShe.CollectBus.Analyzers.Attributes;
using JiShe.CollectBus.IoTDB.Attribute; using JiShe.CollectBus.IoTDB.Attribute;
using JiShe.CollectBus.IoTDB.Enums; using JiShe.CollectBus.IoTDB.Enums;
using JiShe.CollectBus.IoTDB.Model; using JiShe.CollectBus.IoTDB.Model;
namespace JiShe.CollectBus.Ammeters namespace JiShe.CollectBus.Ammeters
{ {

View File

@ -1,5 +1,4 @@
using JiShe.CollectBus.Common; using JiShe.CollectBus.Analyzers.Attributes;
using JiShe.CollectBus.Common.Attributes;
using JiShe.CollectBus.IoTDB.Attribute; using JiShe.CollectBus.IoTDB.Attribute;
using JiShe.CollectBus.IoTDB.Enums; using JiShe.CollectBus.IoTDB.Enums;
using JiShe.CollectBus.IoTDB.Model; using JiShe.CollectBus.IoTDB.Model;

View File

@ -1,110 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace JiShe.CollectBus.IotSystems.MeterReadingRecords;
public static class MeterReadingTelemetryPacketInfoExtension
{
// Processing property: ScoreValue
public static string GetScoreValue(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ScoreValue;
public static void SetScoreValue(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.ScoreValue = value;
// Processing property: ManualOrNot
public static bool GetManualOrNot(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ManualOrNot;
public static void SetManualOrNot(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, bool value) => obj.ManualOrNot = value;
// Processing property: TaskMark
public static string GetTaskMark(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.TaskMark;
public static void SetTaskMark(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.TaskMark = value;
// Processing property: IsTimeout
public static bool GetIsTimeout(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.IsTimeout;
public static void SetIsTimeout(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, bool value) => obj.IsTimeout = value;
// Processing property: PendingCopyReadTime
public static System.DateTime GetPendingCopyReadTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.PendingCopyReadTime;
public static void SetPendingCopyReadTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, System.DateTime value) => obj.PendingCopyReadTime = value;
// Processing property: FocusId
public static int GetFocusId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.FocusId;
public static void SetFocusId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.FocusId = value;
// Processing property: FocusAddress
public static string GetFocusAddress(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.FocusAddress;
public static void SetFocusAddress(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.FocusAddress = value;
// Processing property: MeterId
public static int GetMeterId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.MeterId;
public static void SetMeterId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.MeterId = value;
// Processing property: MeterAddress
public static string GetMeterAddress(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.MeterAddress;
public static void SetMeterAddress(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.MeterAddress = value;
// Processing property: DatabaseBusiID
public static int GetDatabaseBusiID(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.DatabaseBusiID;
public static void SetDatabaseBusiID(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.DatabaseBusiID = value;
// Processing property: AFN
public static int GetAFN(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.AFN;
public static void SetAFN(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.AFN = value;
// Processing property: Fn
public static int GetFn(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.Fn;
public static void SetFn(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.Fn = value;
// Processing property: Pn
public static int GetPn(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.Pn;
public static void SetPn(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.Pn = value;
// Processing property: ItemCode
public static string GetItemCode(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ItemCode;
public static void SetItemCode(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.ItemCode = value;
// Processing property: SubItemCode
public static string GetSubItemCode(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.SubItemCode;
public static void SetSubItemCode(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.SubItemCode = value;
// Processing property: Seq
public static int GetSeq(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.Seq;
public static void SetSeq(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.Seq = value;
// Processing property: MSA
public static int GetMSA(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.MSA;
public static void SetMSA(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int value) => obj.MSA = value;
// Processing property: IsSend
public static bool GetIsSend(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.IsSend;
public static void SetIsSend(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, bool value) => obj.IsSend = value;
// Processing property: SendNum
public static int? GetSendNum(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.SendNum;
public static void SetSendNum(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, int? value) => obj.SendNum = value;
// Processing property: NextSendTime
public static System.DateTime? GetNextSendTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.NextSendTime;
public static void SetNextSendTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, System.DateTime? value) => obj.NextSendTime = value;
// Processing property: CreationTime
public static System.DateTime GetCreationTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.CreationTime;
public static void SetCreationTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, System.DateTime value) => obj.CreationTime = value;
// Processing property: IssuedMessageHexString
public static string GetIssuedMessageHexString(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.IssuedMessageHexString;
public static void SetIssuedMessageHexString(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.IssuedMessageHexString = value;
// Processing property: IssuedMessageId
public static string GetIssuedMessageId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.IssuedMessageId;
public static void SetIssuedMessageId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.IssuedMessageId = value;
// Processing property: ReceivedMessageHexString
public static string? GetReceivedMessageHexString(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ReceivedMessageHexString;
public static void SetReceivedMessageHexString(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string? value) => obj.ReceivedMessageHexString = value;
// Processing property: ReceivedTime
public static System.DateTime? GetReceivedTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ReceivedTime;
public static void SetReceivedTime(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, System.DateTime? value) => obj.ReceivedTime = value;
// Processing property: ReceivedMessageId
public static string GetReceivedMessageId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ReceivedMessageId;
public static void SetReceivedMessageId(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.ReceivedMessageId = value;
// Processing property: ReceivedRemark
public static string GetReceivedRemark(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.ReceivedRemark;
public static void SetReceivedRemark(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, string value) => obj.ReceivedRemark = value;
// Processing property: IsReceived
public static bool GetIsReceived(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj) => obj.IsReceived;
public static void SetIsReceived(JiShe.CollectBus.IotSystems.MeterReadingRecords.MeterReadingTelemetryPacketInfo obj, bool value) => obj.IsReceived = value;
// Processing property: SystemName
public static string GetSystemName(JiShe.CollectBus.IoTDB.Model.IoTEntity obj) => obj.SystemName;
public static void SetSystemName(JiShe.CollectBus.IoTDB.Model.IoTEntity obj, string value) => obj.SystemName = value;
// Processing property: ProjectId
public static string GetProjectId(JiShe.CollectBus.IoTDB.Model.IoTEntity obj) => obj.ProjectId;
public static void SetProjectId(JiShe.CollectBus.IoTDB.Model.IoTEntity obj, string value) => obj.ProjectId = value;
// Processing property: DeviceType
public static string GetDeviceType(JiShe.CollectBus.IoTDB.Model.IoTEntity obj) => obj.DeviceType;
public static void SetDeviceType(JiShe.CollectBus.IoTDB.Model.IoTEntity obj, string value) => obj.DeviceType = value;
// Processing property: DeviceId
public static string GetDeviceId(JiShe.CollectBus.IoTDB.Model.IoTEntity obj) => obj.DeviceId;
public static void SetDeviceId(JiShe.CollectBus.IoTDB.Model.IoTEntity obj, string value) => obj.DeviceId = value;
// Processing property: Timestamps
public static long GetTimestamps(JiShe.CollectBus.IoTDB.Model.IoTEntity obj) => obj.Timestamps;
public static void SetTimestamps(JiShe.CollectBus.IoTDB.Model.IoTEntity obj, long value) => obj.Timestamps = value;
}

View File

@ -20,11 +20,14 @@
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\..\modules\JiShe.CollectBus.FreeSql\JiShe.CollectBus.FreeSql.csproj" /> <ProjectReference Include="..\..\modules\JiShe.CollectBus.FreeSql\JiShe.CollectBus.FreeSql.csproj" />
<ProjectReference Include="..\..\modules\JiShe.CollectBus.IoTDB\JiShe.CollectBus.IoTDB.csproj" /> <ProjectReference Include="..\..\modules\JiShe.CollectBus.IoTDB\JiShe.CollectBus.IoTDB.csproj" />
<ProjectReference Include="..\..\shared\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj" /> <ProjectReference Include="..\..\shared\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj" />
<ProjectReference Include="..\..\shared\JiShe.CollectBus.Domain.Shared\JiShe.CollectBus.Domain.Shared.csproj" /> <ProjectReference Include="..\..\shared\JiShe.CollectBus.Domain.Shared\JiShe.CollectBus.Domain.Shared.csproj" />
<ProjectReference Include="..\..\shared\JiShe.CollectBus.IncrementalGenerator\JiShe.CollectBus.IncrementalGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> <ProjectReference Include="..\..\shared\JiShe.CollectBus.Analyzers.Attributes\JiShe.CollectBus.Analyzers.Attributes.csproj"/>
<ProjectReference Include="..\..\shared\JiShe.CollectBus.Analyzers\JiShe.CollectBus.Analyzers.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,6 +1,6 @@
using System; using System;
namespace JiShe.CollectBus.Common namespace JiShe.CollectBus.Analyzers.Attributes
{ {
/// <summary> /// <summary>
/// 标记需要生成源码的类 /// 标记需要生成源码的类

View File

@ -0,0 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@ -1,11 +1,9 @@
using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Text;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks;
namespace JiShe.CollectBus.IncrementalGenerator namespace JiShe.CollectBus.IncrementalGenerator
{ {
@ -15,18 +13,16 @@ namespace JiShe.CollectBus.IncrementalGenerator
[Generator(LanguageNames.CSharp)] [Generator(LanguageNames.CSharp)]
public class ComplexTypeSourceGenerator : IIncrementalGenerator public class ComplexTypeSourceGenerator : IIncrementalGenerator
{ {
private const string AttributeFullName = "JiShe.CollectBus.Common.GenerateAccessorsAttribute"; private const string AttributeFullName = "JiShe.CollectBus.Analyzers.Attributes.GenerateAccessorsAttribute";
public void Initialize(IncrementalGeneratorInitializationContext context) public void Initialize(IncrementalGeneratorInitializationContext context)
{ {
//Debugger.Launch();
Debugger.Launch();
context.RegisterPostInitializationOutput(ctx => context.RegisterPostInitializationOutput(ctx =>
{ {
ctx.AddSource("DebugInit.g.cs", "// Generator initialized"); ctx.AddSource("GeneratorInit.g.cs", "// Initialization Marker");
}); });
// 步骤1筛选带有 [GenerateAccessors] 的类 // 步骤1筛选带有 [GenerateAccessors] 的类
var classDeclarations = context.SyntaxProvider var classDeclarations = context.SyntaxProvider
@ -45,7 +41,7 @@ namespace JiShe.CollectBus.IncrementalGenerator
private static bool IsClassWithAttribute(SyntaxNode node) => node is ClassDeclarationSyntax cds && cds.AttributeLists.Count > 0; private static bool IsClassWithAttribute(SyntaxNode node) => node is ClassDeclarationSyntax cds && cds.AttributeLists.Count > 0;
private static ClassDeclarationSyntax? GetClassDeclaration(GeneratorSyntaxContext context) private static ClassDeclarationSyntax GetClassDeclaration(GeneratorSyntaxContext context)
{ {
var classDecl = (ClassDeclarationSyntax)context.Node; var classDecl = (ClassDeclarationSyntax)context.Node;
var attributeType = context.SemanticModel.Compilation.GetTypeByMetadataName(AttributeFullName); var attributeType = context.SemanticModel.Compilation.GetTypeByMetadataName(AttributeFullName);
@ -135,7 +131,7 @@ namespace JiShe.CollectBus.IncrementalGenerator
System.Diagnostics.Debug.WriteLine($"Generated code for {classSymbol.Name}:\n{code}"); // 调试输出 System.Diagnostics.Debug.WriteLine($"Generated code for {classSymbol.Name}:\n{code}"); // 调试输出
context.AddSource($"{classSymbol.ContainingNamespace}_{classSymbol.Name}Extension.g.cs", code); context.AddSource($"{classSymbol.Name}Extension.g.cs", code);
} }
} }

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net8.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<IsRoslynComponent>true</IsRoslynComponent> <IsRoslynComponent>true</IsRoslynComponent>
<NoPackageAnalysis>true</NoPackageAnalysis> <NoPackageAnalysis>true</NoPackageAnalysis>
<ImportDirectoryBuildProps>false</ImportDirectoryBuildProps> <ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
@ -10,18 +10,12 @@
<LangVersion>latest</LangVersion> <LangVersion>latest</LangVersion>
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules> <EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles> <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<!-- 指定生成文件的输出目录 -->
<CompilerGeneratedFilesOutputPath>Generated</CompilerGeneratedFilesOutputPath>
<Nullable>enable</Nullable>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.13.0" PrivateAssets="all" /> <PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.13.0" PrivateAssets="all" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\JiShe.CollectBus.Common\JiShe.CollectBus.Common.csproj" > <ProjectReference Include="..\JiShe.CollectBus.Analyzers.Attributes\JiShe.CollectBus.Analyzers.Attributes.csproj" />
<ReferenceOutputAssembly>true</ReferenceOutputAssembly>
<PrivateAssets>all</PrivateAssets>
</ProjectReference>
</ItemGroup> </ItemGroup>
</Project> </Project>