Отражение, чтение проекта .net dll из основного проекта .net в другом решении - PullRequest
0 голосов
/ 14 марта 2019

У меня есть 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? или есть другая проблема?

1 Ответ

2 голосов
/ 14 марта 2019

Мне было интересно, есть ли несовместимость при чтении DLL, созданной в .net-core из .net 4.5.2 framework?

Это так.Приложение .NET Framework не может ссылаться на сборки .NET Core и наоборот.Вот почему существует .NET Standard .

. На проект .NET Standard можно ссылаться как из приложения .NET Framework, так и из приложения .NET Core.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...