Приложение Silverlight сломано из-за FileNotFoundException в System.Windows.Controls

Я работал над преобразованием проекта Silverlight из Silverlight 2 в Silverlight 3. Обратите внимание, что на моем компьютере никогда не устанавливались двоичные файлы SL 2 или компоненты разработки (им всего месяц).

Все шло хорошо, и приложение работало, пока я не начал получать ошибку сборки с ValidateXaml повышением FileNotFoundException в System.Core. Я не знаю, почему это внезапно началось, но, судя по некоторым поискам, ответ, похоже, помещал различные библиотеки DLL Silverlight в GAC. Это действительно решило ошибки сборки. Я не пробовал тестировать, чтобы проверить, правильно ли работает приложение после этого.

Через некоторое время снова пытаюсь запустить приложение. Теперь я получаю еще один FileNotFoundException, на этот раз в System.Windows.Controls. Я попытался удалить все библиотеки DLL Silverlight из GAC и добавить их снова, но безуспешно. Вот трассировка стека:

Message: Unhandled Error in Silverlight Application 
Code: 4004    
Category: ManagedRuntimeError       
Message: System.IO.FileNotFoundException: Could not load file or assembly 'System.Windows.Controls, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
File name: 'System.Windows.Controls, Version=2.0.5.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'
   at MyNamespace.Page.InitializeComponent()
   at MyNamespace.Page..ctor()
   at MyNamespace.App.Application_Startup(Object sender, StartupEventArgs e)
   at System.Windows.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args)
   at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)     

Весь этот опыт был очень разочаровывающим, и я хотел бы знать, что вызывает эти проблемы и как их исправить?


person Alex Angas    schedule 15.01.2010    source источник


Ответы (2)


Вы пробовали программу просмотра журналов fusion? В командной оболочке VS, fuslogvw.exe, установите для нее отображение ошибок привязки в параметрах, очистите журнал и запустите приложение. Впоследствии он предоставит вам подробное объяснение, почему не удалось загрузить сборку. fuslogvw много раз помогал мне в этом.

Обратите внимание на или одну из его зависимостей. Это ключевой момент, это редко сборка, на которую жалуется исключение, часто это проблема зависимости.

person Matt Greer    schedule 15.01.2010
comment
Спасибо, я совсем забыл об этом инструменте! - person Alex Angas; 15.01.2010

Я переустановил среду выполнения Silverlight и все компоненты разработки, и проблема исчезла.

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

person Alex Angas    schedule 15.01.2010