TargetInvocationException при запуске проекта на wp7

1

У меня большой проект wp7, который отлично работал на wp7. В течение нескольких последних недель я использовал устройство wp8 для отладки (проект все еще для wp7), и все было в порядке.

Теперь я начал тестировать его на устройстве wp7, и он меня бросает на линию

System.Windows.Application.LoadComponent(this, new System.Uri("/MyApp;component/App.xaml", System.UriKind.Relative));

это исключение

System.Reflection.TargetInvocationException occurred
  Message=TargetInvocationException
  StackTrace:
       at System.Reflection.RuntimeConstructorInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
       at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
       at MS.Internal.TypeProxy.<>c__DisplayClass30.<GetCreateObjectDelegate>b__2a()
       at MS.Internal.TypeProxy.CreateInstance(UInt32 customTypeId)
       at MS.Internal.XamlManagedRuntimeRPInvokes.CreateInstance(XamlTypeToken inXamlType, XamlQualifiedObject& newObject)
       at MS.Internal.XcpImports.Application_LoadComponentNative(IntPtr pContext, IntPtr pComponent, UInt32 cUriStringLength, String uriString, UInt32 cXamlStrLength, Byte* pXamlStr, UInt32 cAssemblyStrLength, String assemblyStr)
       at MS.Internal.XcpImports.Application_LoadComponent(IManagedPeerBase componentAsDO, String resourceLocator, UnmanagedMemoryStream stream, UInt32 numBytesToRead, String assemblyString)
       at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
       at MyApp.App.InitializeComponent()
       at MyApp.App..ctor()
       at System.Reflection.RuntimeConstructorInfo.InternalInvoke(RuntimeConstructorInfo rtci, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark& stackMark)
       at System.Reflection.RuntimeConstructorInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark& stackMark)
       at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
       at MS.Internal.TypeProxy.<>c__DisplayClass30.<GetCreateObjectDelegate>b__2a()
       at MS.Internal.TypeProxy.CreateInstance(UInt32 customTypeId)
       at MS.Internal.FrameworkCallbacks.CreateKnownObject(IntPtr nativeRootPeer, UInt32 customTypeId, String initializationString, IntPtr& nativePeer, UInt32 isCreatedByParser)
       at MS.Internal.FrameworkCallbacks.CreateUnknownObject(String assemblyName, String typeName, IntPtr nativeRootPeer, String initializationString, UInt32& customTypeId, UInt32& coreTypeId, UInt32& typeFlags, IntPtr& nativePeer)
  InnerException: System.MissingMethodException
       Message=Could not load type 'System.Func'2' from assembly 'mscorlib, Version=3.7.0.0, Culture=neutral, PublicKeyToken=969DB8053D3322AC'.

Я изменил тонны вещей, поэтому я понятия не имею, где искать.

Любые предложения о том, что может быть причиной? А что такое System.Func'2?

EDIT: просто для того, чтобы прояснить это еще раз: проект всегда был нацелен на wp7. И это в настоящее время: Изображение 174551

EDIT2: Выход:

'TaskHost.exe' (Managed): Loaded 'System.Device.dll' 
'TaskHost.exe' (Managed): Loaded 'Cimbalino.Phone.Toolkit.Background.dll'
'TaskHost.exe' (Managed): Loaded 'Cimbalino.Phone.Toolkit.dll'
'TaskHost.exe' (Managed): Loaded 'GalaSoft.MvvmLight.Extras.WP71.dll'
'TaskHost.exe' (Managed): Loaded 'System.Runtime.Serialization.dll'

Может быть, это может помочь? Что-то не так с Serialization.dll на wp7?

EDIT3: Моя системная конфигурация: Windows 8.1 Pro, обновление MSVS Pro 2012 4.

Теги:
exception
windows-phone-8
windows-phone-7

2 ответа

1
Лучший ответ

Хорошо, мне удалось решить проблему. Проблема в том, что библиотека Newtonsoft.Json, текущая версия (6.0.3), как утверждается, совместима с wp7, но на практике это не так.

Изображение 174551

Решение: просто откат до 5.0.8: Install-Package Newtonsoft.Json -Version 5.0.8

  • 0
    Таким образом, это было внутренним для вашего проекта, ничего не связанного с использованием wp8 wp7-устройств и любыми изменениями цели проекта. Ну отлично :)
  • 0
    @GauravDeochakke да :) однако у меня возникла еще одна проблема: серверные вызовы работают нормально на wp8 и выдают исключения NotFound на wp7: stackoverflow.com/questions/23816912/network-errors-on-wp7
0

После того как вы откроете свое WP7-приложение в VS 2012 с WP SDK 8.0 с целевой платформой для WP8, вы больше не сможете использовать этот проект в качестве проекта WP7. Если вы хотите продолжить разработку в новой среде в VS 2012, вам необходимо использовать платформу Target: WP 7.1. Проверьте, к чему предназначена целевая платформа.

Если вы хотите поддерживать WP 7 OS, вам необходимо поддерживать два разных приложения и отправлять их независимо в хранилище. Таким образом, кажется, что вы открыли проект с vs2012 и sdk 8.0, а затем создали и запустили его на wp8, а затем снова попытались сделать это для устройства wp7. Вот что, я думаю, это должно быть проблемой.

  • 0
    Спасибо за ответ. Но проект WP7 ориентированный. Я обновил вопрос. Обычно я представлял проект wp7, и он работает как на wp7, так и на wp8.
  • 0
    Не могли бы вы уточнить: «В прошлый раз я разработал его, используя только устройство wp8 для отладки (проект все еще для wp7)». это твое утверждение? Это заставляет меня думать в неправильном направлении.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню