У меня есть 2 решения в visual studio 2017.
- Первое решение имеет проект, который читает сборку / dll из проекта во внешнем решении. Этот проект закодирован в .net 4.5.2
- У второго решения есть проект, который с целевыми классами / dll отражает первый проект. Этот проект написан на .net core 2
- Оба проекта представлены в двух разных решениях.
Код в первом проекте:
string pathDllProject_DAL = "E:\\Coding\\Repos\\_order_manager_webapp\\order_manager_webapp_backend\\DAL\\bin\\Debug\\netcoreapp2.2\\DAL.dll";
//This line of code works, I do get the assembly object
Assembly ass_DAL2 = Assembly.LoadFile(pathDllProject_DAL);
Type[] respTypes = ass_DAL2.GetTypes(); //<----Exception Thrown HERE
Это исключение, которое я получаю:
'ass_DAL2.GetTypes()' threw an exception of type 'System.Reflection.ReflectionTypeLoadException'
Data: {System.Collections.ListDictionaryInternal}
HResult: -2146232830
HelpLink: null
InnerException: null
LoaderExceptions: {System.Exception[152]}
Message: "Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information."
Source: "mscorlib"
StackTrace: " at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)\r\n at System.Reflection.RuntimeModule.GetTypes()\r\n at System.Reflection.Assembly.GetTypes()"
TargetSite: {System.RuntimeType[] GetTypes(System.Reflection.RuntimeModule)}
Types: {System.RuntimeType[279]}
Мне было интересно, есть ли несовместимость при чтении DLL, созданной в .net-core из среды .net 4.5.2? или есть другая проблема?