There is an issue accessing internal variables at runtime.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia confrontando la Assembly-Csharp.dll modificata in ajustDll con la Assembly-CSharp.dll del runtime in Library/ScriptAssemblies, quindi esamina come vengono generati gli assembly di patch. Esamina la AssemblyInfo.cs proposta e le voci InternalsVisibleTo; il lavoro è completato quando gli assembly Assembly-CSharp_Patch_0 fino a Assembly-CSharp_Patch_N generati possono accedere alle variabili interne a runtime.
Scritto dal modello di indicizzazione a partire dal testo della issue.
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.
- Lingua principale
- C#
- Stelle
- 2.2k
- Fork
- 167
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di handzlikchris/FastScriptReload
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
handzlikchris/FastScriptReload#202 · 2 reazioni ·
-
csc.rsp support Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
-
Failed to find entry-points Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
handzlikchris/FastScriptReload#203 · 4 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
handzlikchris/FastScriptReload#197 · 1 commento ·
Tutte le issue di handzlikchris/FastScriptReload
Issue simili
-
effort:S P3 refactor
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
nightscout/nocturne#1532 ·
-
core dependencies
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 80/100
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
C#/.NET Roslyn LSP Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Suspicious code fragments Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
DotNetNext/SqlSugar#1458 ·