Last night i have synchronized my changes with Oxide github but i was not able to compile it due to unresolvable license problems with my VS 2015 CTP (unable to locate online license bla-bla).
I uninstalled it and went to download Visual Studio again. I dloaded VS 2015 Release Candidate which is seems to be new (Preview is gone?).
Works fine, Oxide is compiled well.
But server doesn't boot up. After viewing main log i found this:
In Oxide log:Code:NullReferenceException: Object reference not set to an instance of an object at Oxide.Ext.Lua.LuaExtension.LoadPluginWatchers (System.String plugindir) [0x00000] in <filename unknown>:0 at Oxide.Core.OxideMod.Load () [0x00000] in <filename unknown>:0 at Oxide.Core.Interface.Initialize () [0x00000] in <filename unknown>:0 at Bootstrap.Initialization () [0x00000] in <filename unknown>:0 at Bootstrap+<Start>c__Iterator1.MoveNext () [0x00000] in <filename unknown>:0 (Filename: Line: -1)
Racked my head for several hours in search of all possible causes. Replacing Oxide.Core from official build solves the problem. And then i found a working VS2015CTP on another Virtual Machine and compiled my Oxide.Core with it.Code:1:57 PM [Error] Failed to load extension Oxide.Ext.Lua (LuaException: unprotected error in call to Lua API (attempt to index a nil value)) 1:57 PM [Debug] at NLua.Lua.PanicCallback (LuaState luaState) [0x00000] in <filename unknown>:0 at (wrapper native-to-managed) NLua.Lua:PanicCallback (KeraLua.LuaState) at (wrapper managed-to-native) KeraLua.NativeMethods:LuaGetTable (intptr,int) at KeraLua.Lua.LuaGetTable (IntPtr luaState, Int32 index) [0x00000] in <filename unknown>:0 at NLua.LuaLib.LuaGetTable (LuaState luaState, Int32 index) [0x00000] in <filename unknown>:0 at NLua.Lua.SetObject (System.String[] remainingPath, System.Object val) [0x00000] in <filename unknown>:0 at NLua.Lua.SetObject (Int32 reference, System.String field, System.Object val) [0x00000] in <filename unknown>:0 at NLua.LuaTable.set_Item (System.String field, System.Object value) [0x00000] in <filename unknown>:0 at Oxide.Ext.Lua.LuaExtension.InitializeLua () [0x00000] in <filename unknown>:0 at Oxide.Ext.Lua.LuaExtension.Load () [0x00000] in <filename unknown>:0 at Oxide.Core.Extensions.ExtensionManager.LoadExtension (System.String filename) [0x00000] in <filename unknown>:0
The server boots again, problem is gone.
Something wrong happens to Oxide.Core when compiling under Release Candidate.
I of course understand that Oxide can't work fine everywhere, this thread is just to note about the possible problem.
Fixed Visual Studio 2015 RC breaks Lua extension
Discussion in 'Rust Discussion' started by VVoid, May 1, 2015.
-
Wulf Community Admin
That's an odd one indeed. I was able to reproduce it, though it doesn't make much sense. It's likely a change with MSBuild. Our snapshots are built with Mono, so this would only affect test/custom builds.
-
At least i found some slight difference, but have no idea what it is about. (RC on the left side)
And i remember that i saw this type name just right before the Lua error.
Code:<PrivateImplementationDetails><Oxide.Core.dll>+__StaticArrayInitTypeSize=6
Code://if (filter.IsMatch(type.Name)) continue; // Get the namespace table LuaTable nspacetable = GetNamespaceTable(Utility.GetNamespace(type)); // Bind the type // Log here if (type.IsNested) nspacetable[Utility.GetTypeName(type)] = CreateTypeTable(type); else nspacetable[type.Name] = CreateTypeTable(type);
(p.s Maybe we need to use regex filter again?) -
Wulf Community Admin
This was fixed a build not too long ago. The latest release should have it!
-
Thanks.