Dotnetcore Natasha Versions Save

基于 Roslyn 的 C# 动态程序集构建库,该库允许开发者在运行时使用 C# 代码构建域 / 程序集 / 类 / 结构体 / 枚举 / 接口 / 方法等,使得程序在运行的时候可以增加新的模块及功能。Natasha 集成了域管理/插件管理,可以实现域隔离,域卸载,热拔插等功能。 该库遵循完整的编译流程,提供完整的错误提示, 可自动添加引用,完善的数据结构构建模板让开发者只专注于程序集脚本的编写,兼容 stanadard2.0 / netcoreapp3.0+, 跨平台,统一、简便的链式 API。 且我们会尽快修复您的问题及回复您的 issue.

v8.0.0.0

4 months ago

[8.0.0.0] - 2024-01-10

DotNetCore.Natasha.DynamicLoad.Base _ v8.0.0.0:

  • INatashaDynamicLoadContextBase 接口来规范域的行为.
  • INatashaDynamicLoadContextCreator 接口来规范创建域以及其他 Runtime 方法的实现.

DotNetCore.Natasha.Domain _ v8.0.0.0:

  • 优化域加载时程序集比对的逻辑.
  • 相同依赖不会二次加载.

DotNetCore.Natasha.CSharp.Compiler.Domain _ v8.0.0.0:

  • 实现 DotNetCore.Natasha.DynamicLoad.Base 接口,支持 Natasha 域操作.

DotNetCore.Natasha.CSharp.Compiler _ v8.0.0.0:

  • 新增 智能模式、轻便模式、自定义模式 三种编译方式.
  • 新增 NatashaLoadContext 统一管理元数据.
  • 支持 实现程序集、引用程序集两种预热方式.
  • 支持 动态断点调试.
  • 支持 引用程序集输出.
  • 支持 隐藏的 Release 模式.
  • 全面兼容 Standard2.0.
  • 优化预热性能.
  • 优化预热内存涨幅.

DotNetCore.Natasha.CSharp.Template.Core _ v8.0.0.0:

  • 全面兼容 Standard2.0.
  • DotNetCore.Natasha.CSharp.Compiler 提供 .NET Core3.1+ 脚本模板支持.

DotNetCore.Natasha.CSharp.Extension.Codecov _ v8.0.0.0:

  • 全面兼容 Standard2.0.
  • 支持动态程序集的方法使用率统计

DotNetCore.Natasha.CSharp.Extension.Ambiguity _ v8.0.0.0:

  • 全面兼容 Standard2.0.

v5.2.0.0

1 year ago

[5.2.0.0] - 2023-04-26

DotNetCore.Natasha.CSharp _ v5.2.2.1:

  • 使用 NMS Template 接管 CI 的部分功能.
  • 取消 SourceLink.GitHub 的继承性.
  • 优化几处内存占用问题.
  • 增加隐式 using 配置文件以支持隐式 using 引用. 当项目开启 <ImplicitUsings>enable</ImplicitUsings> 时,自动生效.
  • 增加初始化 PE 信息判断, 跳过无效 DLL 文件.
  • 整改 AssemblyCSharpBuilder, 修改几处 API:
    • 增加 GetAvailableCompilation, 开发者使用此API可以进行单独编译信息整合以及语义语法修剪,其结果为 Compilation 属性, 为下一步编译程序集做准备.
    • 增加 ClearCompilationCache 移除当前 编译单元的编译信息, 运行 GetAvailableCompilation/GetAssembly 将重新构建编译信息.
    • 增加 WithRandomAssenblyName 将当前编译单元的程序集名更改为 GUID 随机名.
    • 增加 ClearScript 清除当前编译单元储存的所有C#脚本代码.
    • 增加 Clear 清除脚本代码,清除编译信息,清除程序集名.
  • 增加一个节省性能开销的 API.
    • AnalysisIgnoreAccessibility(), 调用此方法,语义检测将检测元数据的访问级别,可能增加性能开销.
    • NotAnalysisIgnoreAccessibility(), 调用此方法,语义检测将忽视检测元数据的访问级别,降低开销(编译单元默认使用的是低开销方案), 安全编程请选择此项.
  • 编译单元增加两个方便操作的 API.
    • AddWithFullUsing(script): 增加脚本时,默认覆盖全域的 Using 引用.
    • AddWithDefaultUsing(script): 增加脚本时,默认覆盖主域的 Using 引用.
  • 新增 Type 的扩展 API:
    • GetDelegateFromType , 参考 GetDelegateFromShortName 的用法.
  • [破坏性更改] 下列 API, 从 AssemblyCSharpBuilder 的扩展方法 更改为 Assembly 类型的扩展方法:
    • GetTypeFromShortName / GetTypeFromFullName,
    • GetMethodFromShortName / GetMethodFromFullName
    • GetDelegateFromShortName / GetDelegateFromFullName

使用迁移: builder.GetDelegateFromShortName() 更改为 builder.GetAssembly().GetDelegateFromShortName(); builder.GetAssembly() 仍然不可多次编译, 请及时缓存结果.

DotNetCore.Natasha.Domain _ v5.2.0.1:

  • 取消 SourceLink.GitHub 的继承性.
  • 增加隐式 using 配置文件以支持隐自动 using 引用.

DotNetCore.Natasha.Extension.Ambiguity _ v1.0.0.4:

  • 升级依赖

v5.1.0.0

1 year ago

[5.1.0.0] - 2023-04-02

DotNetCore.Natasha.CSharp _ v5.1.0.0:

  • Github 补充发布 Release.

DotNetCore.Natasha.Domain _ v5.0.0.0:

  • Github 补充发布 Release.

V1.3.4.0

4 years ago

v1.3.4.0

  • 2019/08/11
    • 支持NFunc静态方法构建动态脚本。
    • 支持NAction静态方法构建动态脚本。

v1.3.2.0

  • 2019/08/09
    • 支持编译不安全方法。
    • 函数模板添加Unsafe方法。

v1.3.0.0

  • 2019/08/07
    • 归类整理命名空间。
    • 增加NewClass\NewStruct\NewInterface静态操作类。
    • 增加NewMethod静态操作类。
    • 增加接口、抽象类、虚方法、普通类的继承实现。

v1.2.1.0

  • 2019/08/06
    • 废弃RuntimeComplier 改用OopComplier,OopComplier带有异常捕获的功能,因此建议使用该方法。
    • 增加Complier.LoadFile方法,在GetClassType/GetStructType.GetInterfaceType之前添加dll, 让编译脚本支持引用dll中的内容。

v1.2.0.0

  • 2019/08/05
    • 增加字符串扩展方法,FastOperator.
    • 修改Class操作为Oop操作,例如ClassBuilder -> OopBuilder。
    • 优化模板结构。
    • Oop模板支持类、结构体、接口多种构建方式。
    • 增加字段模板。
    • FastMethodOperator的Complie<>方法增加智能参数/返回值检测/补齐。

v1.1.0.0

4 years ago
  • 区分OS分隔符

  • 增加异常捕获

  • 优化引擎结构

  • 增强编译器的实现

  • 改ComplierOption为Complier

  • 增强初始化模板

  • 增加构建异步方法

  • 默认语言编译选项

  • 方法异步还原

  • 规范模板命名空间

  • 增加注解构建

v1.0.0.0

4 years ago

发布 1.0.0.0 稳定版

v0.7.5.1

4 years ago

v0.7.5.1

  • 2019/07/18
    • 分离动态调用功能 到 NCaller 项目
  • 2019/07/17
    • 增强类迭代器
    • 增强深度克隆
  • 2019/07/16
    • 修复动态文件加载BUG
    • 修复克隆模块字典数组命名空间问题
    • 增加日志时间记录
    • 增加日志初始化目录功能
  • 2019/07/12
    • 移除自动格式化功能
  • 2019/07/04
    • 修整Natasha架构,采用正序构建

v0.7.2.1

4 years ago
  • 跨平台
  • 升级到Standard的程序集操作
  • 并指定release模式进行编译
  • 修复引用

v0.6.1.1

4 years ago

0.5.0

4 years ago

初次发布,包含UT测试所有功能,UT测试通过。