File tree Expand file tree Collapse file tree 1 file changed +18
-8
lines changed
Expand file tree Collapse file tree 1 file changed +18
-8
lines changed Original file line number Diff line number Diff line change @@ -122,11 +122,11 @@ public void LoadMods(string path)
122122
123123 var defaultResolver = new DefaultAssemblyResolver ( ) ;
124124 defaultResolver . AddSearchDirectory ( scirptsPath ) ;
125-
125+
126126 var dll = AssemblyDefinition . ReadAssembly ( path , new ReaderParameters { AssemblyResolver = defaultResolver } ) ;
127127 dll . Name . Name = $ "{ dll . Name . Name } -{ DateTime . Now . Ticks } ";
128128
129- Debug . Log ( $ "dll.Name.Name : { dll . Name . Name } ") ;
129+ // Debug.Log($"dll.Name.Name : {dll.Name.Name}");
130130
131131 var ms = new MemoryStream ( ) ;
132132 dll . Write ( ms ) ;
@@ -149,22 +149,32 @@ public void LoadMods(string path)
149149 string file = Path . Combine ( scirptsPath , $ "{ item . Name } .dll") ;
150150 if ( File . Exists ( file ) )
151151 {
152- Assembly . LoadFile ( file ) ;
152+ var dllLibs = AssemblyDefinition . ReadAssembly ( file , new ReaderParameters { AssemblyResolver = defaultResolver } ) ;
153+ dllLibs . Name . Name = $ "{ dllLibs . Name . Name } ";
154+ var ms2 = new MemoryStream ( ) ;
155+ dllLibs . Write ( ms2 ) ;
156+ var ass2 = Assembly . Load ( ms2 . ToArray ( ) ) ;
157+
153158 Debug . Log ( $ "加载依赖 { item . Name } 成功") ;
159+ //var fas = Assembly.Load(path);
160+
161+ // 将依赖附加上原dll上
162+ dll . MainModule . AssemblyReferences . Add ( dllLibs . MainModule . AssemblyReferences [ 0 ] ) ;
163+ // 解除原dll的占用
164+ dllLibs . Dispose ( ) ;
165+
154166 }
155-
167+
156168 }
157169 catch ( Exception e )
158170 {
159171 Debug . Log ( $ "加载依赖 { item . Name } 失败") ;
160- }
161-
172+ }
162173 }
163-
164174 scriptManager . AddComponent ( type ) ;
165175 Debug . Log ( $ "加载 { path } 成功") ;
166176 }
167- }
177+ }
168178 }
169179 dll . Dispose ( ) ;
170180 }
You can’t perform that action at this time.
0 commit comments