2014-09-21 1 views
0

Когда я запускаю приложение, иногда (чаще всего в первый раз после компиляции), отображается следующая ошибка.
Перезапуск приложения решает проблему чаще всего.
Как я могу узнать причину?Ошибка при запуске приложения: ReflectionTypeLoad_LoadFailed

Помимо сообщения об ошибке и трассировки стека, у меня нет никакой другой информации о причине.
Visual Studio сообщает, что исходные данные для отладки недоступны.
Из окна информации о потоках я вижу, что основной поток находится в Catel.Reflection.ReflectionExtensions.GetTypesEx().

ApplicationName.vshost.exe - Утверждает Отказ
Выражение: [mscorlib рекурсивного ресурс поиск ошибка]
Описание: зацикливания во время поиска ресурсов в mscorlib.
Это может быть ошибка в mscorlib или потенциально в определенных точках расширяемости, таких как события разрешения сборки или имена CultureInfo.
Название ресурса: ReflectionTypeLoad_LoadFailed

Полный трассировки стека доступен in my onedrive.
Вот первые несколько строк:

Stack Trace: 
at System.Environment.ResourceHelper.GetResourceStringCode(Object userDataln) 
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) 
at System.Environment.ResourceHelper.GetResourceString(String key, CultureInfo culture) 
at System.Environment.ResourceHelper.GetResourceString(String key) 
at System.Environment.GetResourceStringLocal(String key) 
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) 
at System.Reflection.RuntimeModule.GetTypes() 
at System.ReflectionAssembly.GetTypes() 
at Catel.Reflection.ReflectionExtensions.GetTypesEx(Assembly assembly) in c:\CIWSMA1596\Source\Catel\sraCatel.Core\Catel.CoreShareaReflection\Extensions\ReflectionExtensions.assembly.cs:line 33 
at Catel.Reflection.AssemblyHelper.GetAllTypesSafely(Assembly assembly, Boolean logLoaderExceptions) in cACI_WS\WA1596\Source\Catel sraCatel.Core\Catel.Core.ShareaReflection\Helpers `, AssemblyHelper.cs:line 192 
at Catel.Reflection.TypeCachelnitializeAssemblies(lEnumerablel assemblies) in cACI_WSWW\1596\Source\Catel\src\Catel.CoreKatel.Core.ShareaReflection\TypeCache.cs:line 583 
at Catel.Reflection.TypeCachelnitializeTypes(Boolean forceFulllnitialization, Assembly assembly) in cACI_WSNWs\1596\Source\cateNsraCatel.Core\Catel.Core.ShareaReflection\TypeCache.cs:line 553 
at Catel.Reflection.TypeCache.OnAssemblyLoaded(Object sender, AssemblyLoadEventArgs args) in c:\CI_WSNWs\1596\SourceKateNsraCatel.Core\Catel.Core.ShareaReflection\TypeCache.cs:line 131 
at System.AssemblyLoadEventHandlerinvoke(Object sender, AssemblyLoadEventArgs args) 
at SystemAppDomain.OnAssemblyLoadEvent(RuntimeAssembly LoadedAssembly) 
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) 
at System.Reflection.RuntimeModule.GetTypes() 
at System.Reflection.Assembly.GetTypes() 
at Catel.Reflection.ReflectionExtensions.GetTypesEx(Assembly assembly) in c:\CIWS\Ws\1596\Source\Catel\src\Catel.Core\Catel.Core.Shared\Reflection\Extensions\ReflectionExtensions.assembly.cs:line 33 
at Catel.ReflectionAssemblyHelper.GetAllTypesSafely(Assembly assembly, Boolean logLoaderExceptions) in c:\CI_WSNWs\1596\Source\catel\sraCatel.Core\Catel.Core.ShareaReflection\Helpers‘AssemblyHelper.cs:line 192 
at Catel.Reflection.TypeCachelnitializeAssemblies(lEnumerablel assemblies) in cACI_WSNWs\1596\SourceKatel\src\Catel.Core\Catel.Core.ShareaReflection TypeCache.cs:line 583 
at Catel.Reflection.TypeCachelnitializeTypes(Boolean forceFulllnitialization, Assembly assembly) in c:\CIWS\Ws\1596\Source\Catel\sraCatel.Core\Catel.Core.ShareaReflection\TypeCache.cs:line 553 
at Catel.Reflection.TypeCache.OnAssemblyLoaded(Object sender, AssemblyLoadEventArgs args) in c:\CI__WS\WA1596\Source\Catel\sraCatel.Core\Catel.Core.ShareaReflection\TypeCache.cs:line 131 
at System.AssemblyLoadEventHandlerinvoke(Object sender, AssemblyLoadEventArgs args) 
at System.AppDomain.OnAssemblyLoadEvent(RuntimeAssembly LoadedAssembly) 
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module) 
at System.Reflection.RuntimeModule.GetTypes() 
at System.Reflection.Assembly.GetTypes() 
at Catel.Reflection.ReflectionExtensions.GetTypesEx(Assembly assembly) in c: CIWSNWs\1596\Source\Catel\src Catel.Core\Catel.Core.ShareaReflection Extensions\ReflectionExtensions.assembly.cs:line 33 
at Catel.Reflection.AssemblyHelper.GetAllTypesSafely(Assembly assembly, Boolean logLoaderExceptions) in c:\CI_WSNWs\1596\Source\Catel sraCatel.Core\Catel.Core.ShareaReflection\Helpers\AssemblyHelper.cs:line 192 
at Catel.Reflection.TypeCacheinitializeAssemblies(lEnumerablel assemblies) in cACI_WS\WA1596\Source\Catel\src\Catel.CoreKatel.Core.ShareaReflection\TypeCache.cs:line 583 
at Catel.Reflection.TypeCacheinitializeTypes(Boolean forceFulllnitialization, Assembly assembly) in cACIWS\WA1596\Source\Catel\sraCatel.Core\Catel.Core.ShareaReflection‘TypeCache.cs:line 553 
at Catel.Reflection.TypeCache.OnAssemblyLoaded(Object sender, AssemblyLoadEventArgs args) in c:\CI__WS\Ws\1596\Source\Catel\sraCatel.Core\Catel.Core.ShareaReflection‘TypeCache.cs:line 131 
at System.AssemblyLoadEventHandlerinvoke(Object sender, AssemblyLoadEventArgs args) 
at System.AppDomain.OnAssemblyLoadEvent(RuntimeAssembly LoadedAssembly) 

ответ

0

AssemblyHelper в Catel создает кэш, чтобы сделать отражение как можно быстрее. Это означает, что иногда он пытается загрузить типы/сборки, которые не могут быть загружены, но это исключения с первым шансом, поэтому их можно безопасно игнорировать.

+0

К сожалению, у меня нет шансов проигнорировать это исключение. Он показан в модальном всплывающем диалоговом окне, очень отличном от других исключений. Показывается только конкретный тип исключения. Итак, как и где я мог его игнорировать? Разве это не должно делать это? –

+0

Просьба предоставить репродукцию на официальном трекере о проблемах, см. Http://www.catelproject.com/support/issue-tracker –