feat(codegen): validate contracts and unify Unity weaving
This commit is contained in:
@@ -7,5 +7,19 @@ Unity Editor UPM 包,为引用 ShrinkCommand.Runtime、ShrinkNetwork.Runtime
|
||||
`DotNet~` 包含同一 Cecil 织入核心、Roslyn Analyzer 和 `ShrinkSDK.CodeGen` MSBuild 包。Godot 或普通 .NET 项目引用 EventBus、Command、Network、App 等包后,会通过 `buildTransitive` 自动启用织入。
|
||||
|
||||
```powershell
|
||||
dotnet add package ShrinkSDK.CodeGen --version 0.1.0
|
||||
dotnet add package ShrinkSDK.CodeGen --version 0.2.0
|
||||
```
|
||||
|
||||
## 可复用能力
|
||||
|
||||
<!-- shrink:capabilities -->
|
||||
Capability: 编译期织入事件订阅、命令和网络注册表,提供规范诊断
|
||||
Aliases: 生成 织入 analyzer 注册 IL
|
||||
Limits: 不是运行时业务模块;Unity 织入与外部 Roslyn 分别构建
|
||||
Extension: 特性声明及 MSBuild/Unity 构建入口
|
||||
Evidence: [ShrinkAssemblyWeaver](Editor/Core/ShrinkAssemblyWeaver.cs)
|
||||
<!-- /shrink:capabilities -->
|
||||
|
||||
Unity 2022.3 的分析器 DLL 使用 Roslyn 3.8 构建,位于 `Analyzers/`,由 `RoslynAnalyzer` 标签加载,禁用普通运行时插件导入。外部 CLI/NuGet 使用 Roslyn 4.14,二者不能直接互换。SDK 仓库通过 `Tools/AgentSupport/Build-UnityAnalyzer.ps1` 重建 Unity 版本。
|
||||
|
||||
诊断:SHRINK001 订阅签名,SHRINK002 opcode/非空 route 冲突(包括引用程序集),SHRINK003 Installer 接口,SHRINK004 常量 key 声明。生命周期是否正确仍由行为测试验证。Unity 的统一 IL 后处理入口为 ShrinkRegistryILPostProcessor,避免同一程序集重复织入。
|
||||
|
||||
Reference in New Issue
Block a user