我在Visual Studio 2017中有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]}
我想知道从.net 4.5.2框架读取在.net-core中创建的DLL是否存在不兼容性?还是还有其他问题?
答案 0 :(得分:2)
我想知道从.net 4.5.2框架读取在.net-core中创建的DLL是否不兼容?
是的。 .NET Framework应用程序不能引用.NET Core程序集,反之亦然。这就是为什么有.NET Standard。
.NET Standard项目可以从.NET Framework应用程序和.NET Core应用程序中引用。