Сообщение Re[2]: [Mono] Компиляция DLL в рантайме от 02.09.2016 10:42
Изменено 02.09.2016 10:55 Serginio1
S>Здравствуйте, Albeoris, Вы писали:
A>>Насколько актуален System.CodeDom.Compiler?
S>Уже всё.
A>>Как это правильно сделать?
S>Основные кросплатформенные варианты описаны тут.
S>P.S. рослин в теории работает под mono, но с документацией ой. Надо у них на форумах детали спрашивать. Или сразу на SO, быстрее будет.
А вот с компиляцией возникли проблемы. Если создаю приложение то все нормально. Но если вызываю через 1С и копирую сборки
Microsoft.CodeAnalysis.dll
Microsoft.CodeAnalysis.CSharp.dll
System.Runtime.Loader.dll
То получаю ошибку
NetObjectToNative : Ошибка в методе DynamicCompile Exception has been thrown by the target of an invocation. System.Private.CoreLib
System.IO.FileLoadException: Could not load file or assembly 'Microsoft.CodeAnalysis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.CodeAnalysis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at NetObjectToNative.NetObjectToNative.DynamicCompile().
Если просто загрузить Сборку через
var asm = System.Runtime.Loader.AssemblyLoadContext.GetAssemblyName(path);
var assembly = Assembly.Load(asm);
NetObjectToNative : Ошибка в методе Сборка Exception has been thrown by the target of an invocation. System.Private.CoreLib
System.IO.FileLoadException: Could not load file or assembly 'Microsoft.CodeAnalysis.CSharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.CodeAnalysis.CSharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at NetObjectToNative.NetObjectToNative.НайтиСборку(String Каталог, String ИмяФайла) in D:\MyPrograms\VNCOMP83\TestVK\NetObjectToNative\src\NetObjectToNative\NetObjectToNative.cs:line 390
at NetObjectToNative.NetObjectToNative.Сборка(String ИмяФайла, Boolean ГлобальнаяСборка) in D:\MyPrograms\VNCOMP83\TestVK\NetObjectToNative\src\NetObjectToNative\NetObjectToNative.cs:line 490.
S>Здравствуйте, Albeoris, Вы писали:
A>>Насколько актуален System.CodeDom.Compiler?
S>Уже всё.
A>>Как это правильно сделать?
S>Основные кросплатформенные варианты описаны тут.
S>P.S. рослин в теории работает под mono, но с документацией ой. Надо у них на форумах детали спрашивать. Или сразу на SO, быстрее будет.
А вот с компиляцией возникли проблемы. Если создаю приложение то все нормально. Но если вызываю через 1С и копирую сборки
Microsoft.CodeAnalysis.dll
Microsoft.CodeAnalysis.CSharp.dll
System.Runtime.Loader.dll
То получаю ошибку
NetObjectToNative : Ошибка в методе DynamicCompile Exception has been thrown by the target of an invocation. System.Private.CoreLib
System.IO.FileLoadException: Could not load file or assembly 'Microsoft.CodeAnalysis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.CodeAnalysis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at NetObjectToNative.NetObjectToNative.DynamicCompile().
Если просто загрузить Сборку через
var asm = System.Runtime.Loader.AssemblyLoadContext.GetAssemblyName(path);
var assembly = Assembly.Load(asm);
NetObjectToNative : Ошибка в методе Сборка Exception has been thrown by the target of an invocation. System.Private.CoreLib
System.IO.FileLoadException: Could not load file or assembly 'Microsoft.CodeAnalysis.CSharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Microsoft.CodeAnalysis.CSharp, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at NetObjectToNative.NetObjectToNative.НайтиСборку(String Каталог, String ИмяФайла) in D:\MyPrograms\VNCOMP83\TestVK\NetObjectToNative\src\NetObjectToNative\NetObjectToNative.cs:line 390
at NetObjectToNative.NetObjectToNative.Сборка(String ИмяФайла, Boolean ГлобальнаяСборка) in D:\MyPrograms\VNCOMP83\TestVK\NetObjectToNative\src\NetObjectToNative\NetObjectToNative.cs:line 490.
Хотя копирую те же сборки, что и в приложении. Может ей xx.deps.json нужен для приложения?