2021
v4.0
-
2022/01/05~11
-
重构模板模块.
-
优化预热性能.
-
增加重要成员的注释提示.
-
优化 Using 拼接逻辑.
-
-
2022/01/01~05
-
重构反解器模块.
-
重构语义过滤模块.
-
重构日志模块.
-
重构语法模块.
-
增加一些扩展方法.
-
重构编译模块.
-
重构域上下文.
-
重构插件管理, 增加
LoadBehaviorEnum
枚举以供用户选择域加载插件的行为. -
重构引用管理, 使用
LoadBehaviorEnum
枚举以便开发者决定不同域引用集合的合并策略.
-
-
2021/12/28
-
优化重构内置的语义过滤器.
-
优化重构CS0104语义扩展.
-
-
2021/12/27
-
优化全局 Using 的获取方式.
-
增加 NatashaOperator 静态操作类, 方便快速创建其他操作类, 配合域上下文使用.
-
InitializeAndPreheating 预热方法支持
func<string,bool>
参数, 以便开发者排除无用的引用加载.
-
-
2021/12/22
-
分离各运行时对应的
Microsoft.Extensions.DependencyModel
版本. -
升级
DotNetCore.SourceLink.Environment
至 3.1.0 版本. -
Natasha 编译单元增加 DisableSemanticCheck/EnableSemanticCheck 方法以供开发者选择是 否开启语义处理, 关闭可提升性能.
-
屏蔽 CS0219 错误.
-
-
2021/12/03
-
修复 XML 注释编译的 BUG, 支持 XML 注释文件生成.
-
Natasha 编译单元增加 SetDllFilePath/SetPdbFilePath/SetXmlFilePath 方法,开发者可以按需创建对应的文件.
-
Natasha 编译单元移除 AssemblyBuildKind 枚举, 编译输出文件由开发者控制.
-
Natasha 编译单元的可空引用开关默认为关闭, 并建议在手动传字符串编译的场景下手动开启.
-
-
2021/11/26
- 优化插件加载方式,添加"黑名单"依赖,控制插件依赖的加载.
-
2021/11/16
-
完善 UT 测试, 增加委托代理尝试解决可空引用传递失效的问题.
-
调整部分 API 的反射逻辑.
-
-
2021/11/15
-
编译器增加可空引用选项开关, 增加 AssemblyCSharpBuilder 扩展方法 EnableNullableCompile/DisableNullableCompile.
-
增加可空引用模板.
-
-
2021/11/12
-
移植 .NET6.0 可空类型成员反射 API 至 NETCOREAPP3.1 及 NET5.0 运行时.
-
增加复杂可空引用 UT 测试.
-
增加成员可空类型反解, 对事件/字段/属性/参数可反解.
-
-
2021/11/10
-
开启可空引用, 重构 Natasha, 重写部分异常处理逻辑.
-
升级 Natasha 的依赖环境
DotNetCore.SourceLink.Environment
与DotNetCore.Compile.Environment
. -
改造 Natasha 的 msbuild 构建项.
-
升级依赖和目标框架以增加 .NET6.0 支持.
-
升级依赖以增加 C#10 语法支持.
-
-
2021/11/09
-
项目移除对 core3.1 以下版本的支持.
-
加速初始化预热.
-
升级
Microsoft.Extensions.DependencyModel
到6.0版本. -
core3.1 兼容 SkipLocalsInitAttribute 属性.
-
Natasha C# 编译器增加 SupportSkipLocalInit 方法以兼容
Microsoft.Extensions.DependencyModel
6.0版本带来了多义性引用问题. -
编译器模板增加 Api : ConfigComplier 允许开发者配置编译器.
-
编译器模板变动 Api : ConfigCompilation 允许开发者配置编译器选项.
-
更新编译绑定标识.
-
v3.6.0.0
-
2021/11/08
-
移除部分无用代码,合并项目.
-
项目移除对 core3.1 以下版本的支持.
-
加速初始化预热.
-
增加插件加载方法的参数, 支持用户选择是否加载完整的依赖引用. 该参数影响插件加载到非主域时, 接口和抽象类是否使用主域中定义的.
-
更换语法树格式化API.
-
支持动态记录成功日志的方法,默认不记录, NDelegate/Nxx/.RandomDomain(item=>item.Disable/EnableSucceedLog()).
-
日志目录由 /log/ 更换到 /NatashaLogs/
-
v3.5.0.0
-
2021/09/07
-
源代码增加 DEBUG 模式下耗时回显.
-
修复预热函数中引用初始化的错误.
-
最新版本归档至 Achive31 分支中.
-
v3.4.0.0
-
2021/08/16
-
DomainManagement 优化初始化异常提示.
-
反解器修复空范型类型的反解.
-
项目归档至 Achive31 分支中, 今后版本将从 core3.1版本起步兼容.
-
v3.1.0.0
-
2021/07/14
-
还原支持 standard2.0 及 core2.0 以上的各版本.
-
优化 DomainBase 类的插件引用管理方案, 进一步统一引用管理, 移除不必要的对外暴露的方法.
-
优化 NatashaAssemblyDomain 的实现, 添加 core3.0- 版本的依赖反解, 插件行为异同:
-
core3.0 + 解析 json 文件并加载程序集, 支持插件依赖文件版本覆盖, 对插件主体进行升级.
-
core3.0 - 仅扫描同目录下 dll 并加载程序集, 不能对插件依赖进行升级.
-
-
优化 编译流程及事件调用.
-
优化 命名空间反解流程, 屏蔽 ExportedTypes 无法导出而引发异常.
-
优化 模板类 API 命名及归类, 区分 Set 和 Append 操作.
-
增加 命名控件内容追加模板, 支持开发者向同一命名空间中追加代码.
-
增加 Record 数据类型的语法节点自动获取的 API.
-
重命名各基础类字段及事件.
-
Natasha.CSharp.Extension.InvisibleInstance 扩展将以 CS0103 错误为基准,对调用链进行补充.
-
v3.0.0.0
-
2021/06/25
-
重构引擎, 增加语义分析 API, 用户可编写语义解析扩展, 得益于强大的语义分析器, 我们对编译引擎进行了升级和重构.
-
内置 CS0246/CS0234 语义分析处理器.
-
移除 CS0104 处理到
Natasha.CSharp.Extension.Ambiguity
扩展包中, 我们认为二义性引用不应该成为普遍的问题. -
新增 CS8019 无用 using 的处理, 精简生成的代码, 处理后脚本的 using 为按需引用,需要什么 using 脚本会自动呈现什么 using.
-
更改 NDelegate 操作类中传递域为传递编译器, 新增 AddUsing API, 尽管你可能永远用不到.
-
移除 standard2.0 支持, 改为 netcoreapp2.0/2.1/2.2 具体版本支持.
-
开放了 netcore2.1/2.2 版本对 readonly / ref 结构体的反解支持.
-
发布
Natasha.CSharp.Extension.InvisibleInstance
扩展包, 免去脚本中的方法第一个参数的引用调用, 比如: arg.Show 可以直接写为 Show.
-
v2.1.0.0
-
2021/05/09
-
优化引擎, 精简编译流程, 移除不常用事件.
-
域增加
AddReferenceFrom[Type/Type<T>/Assembly]
3 种添加引用的 API. -
反解器增加扩展方法:
- GetDevelopNameWithoutFlag 获取无标志类型名 :
System.Collections.Generic.List<>
- GetDevelopName 获取全类型名 :
System.Collections.Generic.List<T>
- GetRuntimeName 获取运行时类名 :
List<int>
- GetDevelopNameWithoutFlag 获取无标志类型名 :
-
增加强名编译.
-
规范文件结构以及辅助类命名.
-