中文 | English
你们的反馈是我的动力,文档还有很多不足之处;
当你看完文档之后仍然不知道如何实现你的需求,可以在issue中提出你的需求。
基于roslyn的动态编译库,为您提供高效率、高性能、可追踪的动态构建方案,兼容stanadard2.0, 只需原生C#语法不用Emit。 让您的动态方法更加容易编写、跟踪、维护。 欢迎参与讨论:点击加入Gitter讨论组
Scan Name | Status |
---|---|
Document | |
Lang | |
OS | |
Rumtime |
CI Platform | Build Server | Master Build | Master Test |
---|---|---|---|
Github | linux/mac/windows | ||
Azure | Windows | ||
Azure | Linux | ||
Azure | Mac |
Teng(359768998@qq.com)
WeihanLi
-
2019-12-05 : 发布v2.4.0.0, 移除并发计数,增加委托操作扩展 , 现 Fake/FastMethodOperator.Random 以及 RAction/RFunc 生成的委托都存入了缓存中,可以在委托上直接调用Delete进行卸载; 默认使用所有 Using 覆盖编译代码,当发生二义性引用时使用 CS0104Helper 处理二义性问题, 模板增加 UseCustomerUsing 方法来阻止 Using 覆盖,代价是将必要的 Using 引用精确引入到构建中。 编译引擎在出现二义性引用时将进行重试策略,重试次数1次。
-
2019-12-06 : 发布v2.5.0.0, Operator 以及 N系列 API, 可以调用静态方法创建实例同时指定所属的域, 包括 Create(string) / Create(AssemblyDomain) / Random() 三种。
-
2019-12-07 : 发布v2.5.4.0, 增加 CS0234 以及 CS0246 错误自动修复机制,命名空间在无效时会自动剔除并重编译,增加 CS0104 的替换逻辑,在未手动解决二义性时,默认使用靠前的命名空间, 由 NDomain 创建的独立/随机域类型/结构/枚举/接口将支持回收。
-
2019-12-10 : 发布v2.6.1.0, 移除NFunc / RFunc / NAction / RAction / NDelegateOperator / RDelegateOperator / 字符串扩展方法 / 委托扩展方法;改 Delete 卸载方法为 DisposeDomain ,改 AddInCache 为内部方法不对外开放;三个静态创建实例的方法(Create(string) / Create(AssemblyDomain) / Random())增加第二个参数,指定是否以文件方式进行编译,默认为 false,增加静态属性 Default 作为系统域即 Create()方法返回实例。
-
2019-12-16 : 发布v2.7.0.1, 分离项目,Natasha.Core 项目负责原始编译的 API 以及域操作,Natasha.Reverser 项目负责运行时信息反解操作,Natasha 项目引用了 Natasha.Core 以及 Natasha.Reverser 并组建了 Template / Builder / Operator 动态构建三件套,提供便利的 API 以便对外使用。
-
2019-12-17 : 发布v2.7.3.0, Natasha 非系统域生成的操作均进行了缓存,以便进行引用移除/域卸载等操作, Type / Delegate / Assembly 均可以使用 RemoveReferences / DisposeDomain 方法进行引用移除或者卸载域操作。
-
2019-12-18 : 发布v2.7.6.0, Natasha 方法操作类增加 Override 和 NewHidden 方法, NAssembly 增加三种域创建方式, 移除代理操作类到 NCaller 项目中。
为防止广告骚扰,微信群已关闭,进群请发送您的微信号到 2765968624@qq.com 并说明进群原因。
更多更新的参考文档:https://natasha.dotnetcore.xyz/
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.2</TargetFramework>
//一定要加上这句话
<PreserveCompilationContext>true</PreserveCompilationContext>
//WEB发布要加
<MvcRazorExcludeRefAssembliesFromPublish>false</MvcRazorExcludeRefAssembliesFromPublish>
</PropertyGroup>
Natasha的动态调用模块: 已移至【NCaller】
Natasha的动态调用模块: 已移至【DeepClone】
- Microsoft.CodeAnalysis.CSharp.Workspaces Version=3.4.0
- Microsoft.Extensions.DependencyModel Version=3.1.0
- Microsoft.Net.Compilers Version=3.4.0
- Microsoft.Net.Compilers.Toolset Version=3.4.0