Приложение Silverlight не работает с FileNotFoundException в System.Windows.Controls - PullRequest
0 голосов
/ 15 января 2010

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

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

Через некоторое время я пытаюсь снова запустить приложение. Теперь я получаю еще один FileNotFoundException, на этот раз в System.Windows.Controls. Я попытался удалить все библиотеки 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)     

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

Ответы [ 2 ]

1 голос
/ 15 января 2010

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

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

0 голосов
/ 15 января 2010

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

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

...