Aplicação de Silverlight quebrada com filenotfoundException em System.Windows.Controls
-
20-09-2019 - |
Pergunta
Eu tenho trabalhado para converter um projeto de Silverlight de Silverlight 2 para Silverlight 3. Observe que eu tenho nunca teve SL 2 Binários ou componentes de desenvolvimento instalados na minha máquina (tem apenas um mês de idade).
Isso está indo bem e o aplicativo estava funcionando até eu começar a receber um erro de construção com ValidateXaml
levantando a FileNotFoundException
dentro System.Core
. Não sei por que isso de repente começou a acontecer, mas de algumas pesquisas em torno da resposta parecia estar colocando várias DLLs de Silverlight no GAC. Isso realmente resolveu os erros de construção. Não tentei testar para verificar se o aplicativo correu corretamente depois disso.
Algum tempo depois, estou tentando executar o aplicativo novamente. Agora estou recebendo mais um FileNotFoundException
, desta vez em System.Windows.Controls
. Tentei remover todas as DLLs do Silverlight do GAC e adicioná -las novamente sem nenhum sucesso. Aqui está o rastreamento da pilha:
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)
Toda essa experiência tem sido muito frustrante e eu adoraria saber O que está causando esses problemas e como corrigi -los?
Solução 2
Reinstalei o tempo de execução do Silverlight e todos os componentes de desenvolvimento e o problema já desapareceu.
Estou deixando isso sem resposta por enquanto, caso alguém tenha algumas idéias sobre o que causou isso.
Outras dicas
Você já experimentou o visualizador de log de fusão? Em um shell de comando vs, fuslogvw.exe
, defina -o para mostrar erros de ligação nas opções, limpe o log, execute seu aplicativo. Posteriormente, ele lhe dará uma explicação detalhada por que não poderia carregar a montagem. O FusLogvw me ajudou aqui muitas vezes.
Observe o ou uma de suas dependências. Isso é fundamental, é raro que seja a Assembléia que a exceção está reclamando, geralmente é um problema de dependência.