handzlikchris / handzlikchris/FastScriptReload
There is an issue accessing internal variables at runtime.
- Lingua principale
- C#
- Stelle
- 2.2k
- Fork
- 167
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.