Pergunta

Eu fiz um par de alterações no meu aplicativo de trabalho e começou a receber o seguinte erro nesta linha de código.

Dim Deserializer As New Serialization.XmlSerializer(GetType(Groups))

E aqui está o erro.

    BindingFailure was detected
    Message: The assembly with display name 'FUSE.XmlSerializers' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null'

    Message: The assembly with display name 'FUSE.XmlSerializers' failed to load in the 'LoadFrom' binding context of the AppDomain with ID 1. The cause of the failure was: System.IO.FileNotFoundException: Could not load file or assembly 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null'

=== Pre-bind state information ===
LOG: User = DOUG-VM\Doug
LOG: DisplayName = FUSE.XmlSerializers, Version=8.11.16.1, Culture=neutral, PublicKeyToken=null, processorArchitecture=MSIL
 (Fully-specified)
LOG: Appbase = file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/
LOG: Initial PrivatePath = NULL
Calling assembly : System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: E:\Laptop\Core Data\Data\Programming\Windows\DotNet\Work Projects\NOP\Official Apps\FUSE WPF\Fuse\bin\Debug\FUSE.vshost.exe.config
LOG: Using machine configuration file from C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers/FUSE.XmlSerializers.DLL.
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers.EXE.
LOG: Attempting download of new URL file:///E:/Laptop/Core Data/Data/Programming/Windows/DotNet/Work Projects/NOP/Official Apps/FUSE WPF/Fuse/bin/Debug/FUSE.XmlSerializers/FUSE.XmlSerializers.EXE.

O que está acontecendo?

Foi útil?

Solução

A principal razão isso estava acontecendo foi porque eu tinha uma incompatibilidade entre os tipos que eu estava tentando Serialize e Deserialize. Eu estava Serializando ObservableCollection (do Grupo) e desserializar um objeto de negócios -. Grupos que herdaram ObservableCollection (do grupo)

E isso também foi parte do problema ... A partir de - http: // social.msdn.microsoft.com/Forums/en-US/asmxandxml/thread/9f0c169f-c45e-4898-b2c4-f72c816d4b55/

Esta exceção é uma parte da operação normal do XmlSerializer. isto é esperado e serão capturados e manipulados dentro do código de quadro. Simplesmente ignorá-lo e continuar. Se isso incomoda durante a depuração, defina o depurador Visual Studio apenas parada em exceções não tratadas em vez de tudo exceções.

Outras dicas

De acordo com a informação que eu encontrei, exceção BindingFailure associado com XmlSerializers às vezes não indica qualquer erro e deve ser simplesmente ignorada, mas às vezes você pode vê-lo i. e. no modo de depuração, quando tiver definido opções VS para mostrar todas as exceções lançadas.

Fonte: https://connect.microsoft.com/VisualStudio/feedback /ViewFeedback.aspx?FeedbackID=88566&wa=wsignin1.0

Btw. isso é mais ou menos uma das coisas mencionadas na primeira resposta:).

Parece que você não pode localizar os FUSE.XmlSerializers montagem. Confira os resultados da Assembly Binding Log Viewer (Fuslogvw.exe) para ver onde ele está procurando (embora a lista apresentada acima parece bastante completo).

Tente localizar onde esta montagem é armazenado em seu computador e executar NGen nele para ver se ele não está a carga por algum motivo. Certifique-se este arquivo DLL está aparecendo em seu diretório Bin \ Debug . O Visual Studio não parecem ter as dependências das dependências, e então você tem que ter certeza de que todos os arquivos que você precisa-se às vezes.

Como você carregar o assembly que contém o tipo Groups? Eu estou supondo que você carregado com Assembly.LoadFrom() porque o serializador XML está usando o mesmo contexto (contexto, a 'LoadFrom') para tentar assembleias de carga para serialização. Se assim for, você tem um par de opções:

  1. Use Assembly.Load() vez de Assembly.LoadFrom().
  2. Anexar um manipulador para AppDomain.AssemblyResolve para ajudar o CLR encontrar o conjunto em causa.

Para os poucos projetos do Visual Studio que eu tenho, onde este é um aborrecimento, prefiro desativar pausa na exceção apenas para o BindingFailure e System.IO.FileNotFoundException .

No Visual Studio: Ctrl + D , Ctrl + E para o diálogo de Exceções:

1) Uncheck BindingFailure sob Dirigido Depuração Assistentes

2) Desmarque System.IO.FileNotFoundException em Exceções Common Language Runtime .

Ahhh que é melhor: -)

... e vejo 1/2 esta resposta foi dada por strager 24 de novembro '10 em 10:12

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top