Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

There is an issue accessing internal variables at runtime.

未关闭
#147 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
csharp, unity
领域
devtools, game-dev

调研方向

首先比较 ajustDll 中修改后的 Assembly-Csharp.dll 与 Library/ScriptAssemblies 中运行时使用的 Assembly-CSharp.dll,然后检查补丁程序集是如何生成的。审查提议的 AssemblyInfo.cs 和 InternalsVisibleTo 条目;完成的标准是,生成的 Assembly-CSharp_Patch_0 到 Assembly-CSharp_Patch_N 程序集能够在运行时访问内部变量。

由索引模型根据 Issue 内容生成。

描述

Although a copy of the original assembly Assembly-Csharp.dll is located in the ajustDll folder and has been modified to make the patch assembly is a friend assembly to patch, allowing the patch assembly to compile with access to internal variables in Assembly-Csharp, the actual assembly running is not the DLL under the ajustdll folder but rather Assembly-CSharp.dll in Library/ScriptAssemblies. Therefore, accessing internal variables at runtime will cause issues.

I thought of a solution: adding a file named AssemblyInfo.cs to the project with the following content:
using System.Runtime.CompilerServices; [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_0")] [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_1")] [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_2")] [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_3")] [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_4")] [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_5")] ... [assembly: InternalsVisibleTo("Assembly-CSharp_Patch_N")]

This way, during runtime, the generated patch file names will be Assembly-CSharp_Patch_0 to Assembly-CSharp_Patch_N, which will allow the patch assembly to access the internal variables in Assembly-Csharp with the proper permissions.

主要语言
C#
星标
2.3k
派生
171
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

handzlikchris/FastScriptReload 的其他 Issue

查看 handzlikchris/FastScriptReload 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。