Uma aplicação .NET Compact Framework gera uma excepção System.TypeLoadException

Traduções de Artigos Traduções de Artigos
Artigo: 914793 - Ver produtos para os quais este artigo se aplica.
Importante Este artigo contém informações sobre como modificar o registo. Certifique-se de que uma cópia de segurança do registo antes de o modificar. Certifique-se de que sabe como restaurar o registo se ocorrer um problema. Para obter mais informações sobre como efectuar uma cópia de segurança, restaurar e modificar o registo, clique no número de artigo que se segue para visualizar o artigo na base de dados de conhecimento da Microsoft:
256986Descrição do registo do Microsoft Windows
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando executa uma aplicação baseada no .NET Compact Framework que utiliza a assemblagem Microsoft.WindowsMobile.Telephony num dispositivo Smartphone Microsoft, a aplicação poderá gerar uma excepção System.TypeLoadException.

Causa

Este problema ocorre porque a assemblagem Microsoft.WindowsMobile.Telephony não está correctamente instalada na cache global assemble no Microsoft Windows Mobile 5.0 para Smartphone. Uma excepção TypeLoadException ocorre quando a assemblagem Microsoft.WindowsMobile.Telephony é carregada.

Resolução

Aviso Podem ocorrer problemas graves se modificar o registo incorrectamente utilizando o Editor de registo ou utilizando outro método. Estes problemas poderão forçar a reinstalação do sistema operativo. Microsoft não garante que estes problemas podem ser resolvidos. Modificar o registo por sua própria conta e risco.

Para resolver este problema, tem de adicionar as seguintes duas entradas no registo:
Localização: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Installer\Assemblies\Global]
Tipo: múltiplas cadeias
Nome: Microsoft.WindowsMobile.Telephony, versão = 1.0.0.0, Culture = neutro, PublicKeyToken = 31bf3856ad364e35
Valor: "\Windows\GAC_Microsoft.WindowsMobile.Telephony_v1_0_0_0_cneutral_1.dll","Microsoft.WindowsMobile.Telephony.dll"

Localização: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Installer\Assemblies\ROM]
Tipo: múltiplas cadeias
Nome: Microsoft.WindowsMobile.Telephony, versão = 1.0.0.0, Culture = neutro, PublicKeyToken = 31bf3856ad364e35
Valor: "\Windows\GAC_Microsoft.WindowsMobile.Telephony_v1_0_0_0_cneutral_1.dll","Microsoft.WindowsMobile.Telephony.dll"
Também pode utilizar o Microsoft Visual Studio 2005 para adicionar manualmente estas entradas a um projecto CAB dispositivos inteligentes. Ou pode adicionar estas entradas incluindo-as na secção de um ficheiro .inf que dá origem a um ficheiro CAB RegKeys. Para o fazer, utilize a formatação seguintes:
[RegKeys]
"HKLM","Software\Microsoft\.NETCompactFramework\Installer\Assemblies\ROM","Microsoft.WindowsMobile.Telephony, Version = 1.0.0.0, Culture = neutro, PublicKeyToken=31bf3856ad364e35","0x00010000","\Windows\GAC_Microsoft.WindowsMobile.Telephony_v1_0_0_0_cneutral_1.dll","Microsoft.WindowsMobile.Telephony.dll"
"HKLM","Software\Microsoft\.NETCompactFramework\Installer\Assemblies\Global","Microsoft.WindowsMobile.Telephony, Version = 1.0.0.0, Culture = neutro, PublicKeyToken=31bf3856ad364e35","0x00010000","\Windows\GAC_Microsoft.WindowsMobile.Telephony_v1_0_0_0_cneutral_1.dll","Microsoft.WindowsMobile.Telephony.dll"

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais Informação

Este problema está agendado para ser fixado na adaptação Kit Update (AKU) 3.0 para Windows Mobile 5.0 para Smartphone.

Para mais informações sobre como adicionar entrada de registo a um projecto CAB, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/zcebx8f8.aspx

Passos para reproduzir o problema

  1. Certifique-se de que tem o SDK do Windows Mobile 5.0 para Smartphone instalado.
  2. Inicie o Visual Studio 2005.
  3. No menu ficheiro, clique em Novo e, em seguida, clique em projecto.
  4. Expanda Visual C#, expanda Dispositivos inteligentes e, em seguida, clique em Windows Mobile 5.0 Smartphone.
  5. Clique em Aplicação do dispositivo, escreva DeviceApplication1 na caixa nome e, em seguida, clique em OK.
  6. Adicione um controlo LinkLabel novo denominado linkLabel1 ao formulário Form1.
  7. Adicione uma referência a Microsoft.WindowsMobile.Telephony assemblagem.
  8. Adicione o seguinte utilizando a instrução para Form1.cs:
    using Microsoft.WindowsMobile.Telephony;
  9. Adicione o seguinte código ao processador de eventos linkLabel1_click no Form1.cs:
    Phone myPhone = new Phone();
    myPhone.Talk("555-0100\0");
  10. Criar um novo projecto CAB dispositivos inteligentes e, em seguida, implementar a aplicação no dispositivo Smartphone.

Referências

Propriedades

Artigo: 914793 - Última revisão: 3 de maio de 2010 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Windows Mobile 5.0 for Smartphones
  • Windows Mobile 6.5 Standard
Palavras-chave: 
kbmt kbinfo kbfix kbbug kbprb KB914793 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 914793

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com