Solução de problemas no Visual Studio em tempo de design
Os seguintes problemas podem ocorrer enquanto você estiver desenvolvendo soluções com Ferramentas do Visual Studio para o Office.
Salvando uma solução e, em seguida, executando-exibe um erro
O Visual Studio armazena soluções em um Temporário pasta até que elas são salvas.Ferramentas do Visual Studio para o Office altera automaticamente sua diretiva de segurança para a solução no local temporário Confiar.Essas alterações são feitas quando a solução é criada.Se você não faça quaisquer alterações para a solução antes de você Salvar-lo para uma pasta permanente, o Visual Studio não compila a solução quando você executá-lo novamente do novo local.Portanto, a solução não é confiável automaticamente no novo local, e a solução não é executado.
Se você receber um erro depois de Salvando uma Novo solução para um local permanente, abra o menu de De compilação de e, em seguida, clique em Recompilar solução.Isso faz com que Visual Studio ComCompilação a solução mesmo se você não tiver feito alterações nele.Ferramentas do Visual Studio para o Office, em seguida, faz as alterações apropriadas a diretiva de segurança para o novo local.
Não é possível ComCompilação um projeto de nível de documento que É baseado em um documento com permissões restritas
Ferramentas do Visual Studio para o Office não é possível ComCompilação projetos de nível de documento se o documento tem permissões restritas.Se seu projeto contém um documento que tem permissões restritas, o projeto não será Compilar, e você receberá a seguinte mensagem na janela lista de erros:
Falha ao adicionar a personalização.
Se desejar incluir um documento que tem permissões restritas, use um documento irrestrito enquanto você desenvolver e ComCompilação a solução.Em seguida, aplicar as permissões restritas ao documento no local de publicação, depois que você publicar a solução.
Alguns eventos não estão alto ao usar o C#
Objetos de escritório que possuem um método e um evento com o mesmo nome foram Dividir em dois objetos nos assemblies de interoperabilidade primários do Office: um objeto Núcleo com Tudo as propriedades e méTudos e um objeto de evento que contém os eventos com nomes que estão em conflito com uma propriedade ou méTudo.Esses objetos de evento usam a nomeação _Event convenção < objectname >.Se você não vir um evento que você espera, converter para a interface de _Event < objectname >.
Por exemplo, há um evento de ActivateEvent e um método de Activate para um Workbook.Para manipular esse evento, use WorkbookEvents_Event em vez de Workbook.
Criar variáveis de membro na seção declarações:
private Excel.Workbook wkbk;
private Excel.WorkbookEvents_Event wbEvents;
private Excel.WorkbookEvents_ActivateEventHandler activateEvent;
Conectar o evento no _Startup:
wbEvents = (Excel.WorkbookEvents_Event)wkbk;
activateEvent = new Excel.WorkbookEvents_ActivateEventHandler(ThisWorkbook_Activate);
wbEvents.Activate += activateEvent;
Gravar um manipulador de eventos:
private void ThisWorkbook_Activate()
{
// Your code goes here.
}
Você deve converter para WorkbookEvents_Event porque Excel.Workbook.Activate retorna o método de Activate e não o evento de ActivateEvent.
Como alternativa, você pode converter o objeto para sua interface de eventos correspondente no Startup:
((Excel.WorkbookEvents_Event)(Globals.ThisWorkbook.InnerObject)).Activate +=
new Excel.WorkbookEvents_ActivateEventHandler(ThisWorkbook_Activate);
Em seguida, Gravar um manipulador de eventos para o seu código:
private void ThisWorkbook_Activate()
{
// Your code goes here.
}
Referências a classes do Office não são reconhecidas
Alguns nomes de classe, por exemplo Application, estão em Múltiplo namespaces, como Microsoft.Office.Interop.Word e System.Windows.Forms.Por esse motivo, o Imports/using instrução na parte superior de modelos de projeto inclui uma abreviada qualificação constante, por exemplo:
Imports Word = Microsoft.Office.Interop.Word
using Word = Microsoft.Office.Interop.Word;
Esse uso do Imports/ instruçãousing requer que você diferenciar as referências a classes do Office com o qualificador do Word ou Excel, por exemplo:
Dim doc As Word.Document
Word.Document doc;
Se você usar uma declaração não qualificada, por exemplo, você receberá erros:
Dim doc As Document ' Class is ambiguous
Document doc; // Class is ambiguous
Embora você tenha importado o namespace do Word ou Excel e ter Acessar a Tudo as classes dentro dela, você deve qualificar totalmente Tudo tipos com o Word ou Excel para remover a ambigüidade de espaço para nome.
Propriedades do Controlarar são perdidas quando você Criar com um novo projeto base em um documento a partir de um projeto existente
Se você criar um novo projeto de Ferramentas do Visual Studio para o Office com base em um documento de um projeto existente, as propriedades de quaisquer controles que estejam no documento não são copiadas para o novo projeto.Você deve redefinir as propriedades de quaisquer controles preexistentes manualmente.Como alternativa, você pode preservar as propriedades do controle criando uma cópia do projeto existente em vez de criar um novo projeto, ou Carregando o projeto existente na nova solução (no designer) e copiar e colar os controles do documento existente para o novo documento.
Controles Aparecerr como retângulos preto no documento ou planilha
Se você agrupar controles em um documento ou planilha, Ferramentas do Visual Studio para o Office não reconhece os controles.Controles agrupados não podem ser acessados na janela Properties e eles Aparecerr como retângulos preto no documento ou planilha.Você deve desagrupar controles Ordem para restaurar suas funcionalidades.
Controles em um modelo do Word são não visível no Visual Studio.
Se você abrir um modelo do Word no designer do Visual Studio, controles no modelo que não são alinhado com texto podem não estar Visível.Isso ocorre porque o Visual Studio abre modelos do Word no Exibir normal.Para exibir os controles, clique no menu de exibir, aponte para De modo de exibição do Microsoft Office Word e clique em Imprimir layout.
Nomes de dataset em cache do Visual Basic não Aparecerr corretamente no cache
Objetos de DataSet criado usando o Visual Basic que são marcadas como Cached e WithEvents (incluindo DataSet objetos que são arrastados da janela Fontes de dados ou o de caixa de ferramentas que possuem a propriedade de CacheInDocument definida como True) tem um sublinhado o prefixo para seus nomes no cache.Por exemplo, se você criar um DataSet e nomeie-os clientes, o nome de CachedDataItem será _Customers no cache.Quando você usa ServerDocument para acessar este item em cache, você deve especificar _Customers em vez de clientes.
Erros de compilador ocorrem quando um projeto do Microsoft Office 2003 É nomeado Excel ou Word
Excel e Word são palavras-chave reservadas em projetos do Office.
Erros de compilador ocorrem depois de um Controlarar NamedRange É excluído
Se você excluir um Controlarar de NamedRange de uma planilha que não seja a planilha Ativo no designer, o código gerado Automáticomáticomático não pode ser removido do seu projeto e erros do compilador podem ocorrer.Para certificar-se que o código é removido, você deve sempre selecionar a planilha que contém o Controlarar de NamedRange para torná-lo da planilha Ativo antes de excluir o Controlarar.Se o código gerado Automáticomáticomático não é excluído quando você excluir o Controlarar, você pode causar o designer para excluir o código, ativando a planilha e fazer uma Alterar para que a planilha se torna marcada como modificada.Quando você Recompilar o projeto, o código é removido.
Usar um caminho HTTP para o assembly não está funcionando
Duas das possibilidades principais são:
O Visual Studio Tools para Office Projeto Assistente não modifica a diretiva de segurança para os assemblies criados em locais HTTP.Você deve conceder completo Confiar ao conjunto de módulos (assembly) manualmente.For more information, see Como: Conceder permissões a pastas e conjuntos de módulos (sistema de 2003).
ASP.NET desativa o download das DLLs por padrão.Para assemblies baixar o usuário, o administrador do servidor Web deve alterar propriedades do Internet Information Services (IIS) para permitir DLLs a serem baixados do diretório onde o assembly está armazenado.Para obter mais informações, consulte Ajuda dos serviços de informações da Internet (IIS), navegando para https://localhost/iisHelp/ no servidor Web.
Para testar se esse for o problema, você pode Marcar o log do servidor Web para solicitações negados para a DLL.Se ele parece estar outra causa, defina o depurador Interrupçãor em Tudo as exceções e Marcar as mensagens de erro.
Projetos criados em locais de rede UNC não automaticamente Modificar diretiva de segurança
O Visual Studio Tools para Office Projeto Assistente modifica a diretiva de segurança no nível do usuário.Se você criar um projeto em um Local da Rede UNC, a diretiva de segurança deve ser modificada no nível do computador para conceder completo Confiar para o assembly antes de poder executá-lo.Você deve fazer alterações de diretiva de nível de Computador manualmente.For more information, see Como: Conceder permissões a pastas e conjuntos de módulos (sistema de 2003).
Evento DocumentChange não É alto ao documento É aberto
O evento DocumentChange é disparado quando o documento ativo é alterado.Além disso, ele geralmente é disparado quando um documento é aberto.No entanto, por causa das diferentes maneiras que Word pode abrir documentos (por exemplo de uma linha de comando, do Windows Explorer ou no menu Arquivo no Word), o evento DocumentChange não é sempre disparado quando o documento for aberto.Ele sempre deve ser gerado quando o documento ativo é alterado após Abrindo.Se você quiser executar ações quando o documento for aberto, use o evento Startup.
Threads não estão interrompidos corretamente após a Depurando
Ferramentas do Visual Studio para o Office segue um thread que permite que o depurador para fechar o programa corretamente convenção de nomes.Se você criar threads em sua solução, você deve nomear cada segmento com o prefixo VSTA_ para garantir que esses threads são manipulados corretamente quando você parar a Depurando.Por exemplo, você pode definir a propriedade de Name de um thread que aguarda um evento de rede para VSTA_NetworkListener.
Eventos do Excel estão alto diferente no Internet Explorer que no Excel
Se uma pasta de trabalho estiver hospedada no Internet Explorer, os eventos são disparados em uma ordem diferente se a pasta de trabalho é aberta no Excel.Além disso, alguns dos eventos são gerados duas vezes.Se sua solução inclui o Internet Explorer, teste como a seqüência de eventos diferentes afeta a operação de sua solução.
Novo evento não É alto quando um documento É criado a partir de um modelo
Quando você usar um prompt de comando para abrir um modelo do Word e Criar um novo documento, você deve usar Switch / z para disparar o evento New.Não incluir um espaço após a opção ou o Word abre o modelo para edição em vez de criar um novo documento baseado no modelo.Por exemplo: winword.exe /z"mytemplate.dot"
Isso é semelhante a usar Switch /t, com a adição dessSwitch aumenta o evento de New.
Evento aberto não É alto quando uma planilha XML está aberta
Se você basear um projeto do Excel em uma planilha existente não-nativo (como o Formatarar XML do Excel), o evento Open não é disparado quando a planilha for aberta.
Método BeforeClose executa mas abrir pasta de trabalho de usuário mantém
É possível que um usuário final cancelar a operação de Fechar de uma pasta de trabalho e continuar a usar a solução depois que o manipulador de eventos BeforeClose tiver sido chamado.Isso acontece quando o usuário faz alterações em uma planilha e, em seguida, realiza uma ação para fechar a pasta de trabalho sem Salvando primeiro.O manipulador de eventos BeforeClose é chamado, e, em seguida, o usuário é apresentado uma caixa de diálogo que tem a opção para cancelar a operação de Fechar.
Se você colocar o código no manipulador de eventos BeforeClose que fecha conexões de banco de dados ou executa Outro ação de Apagar, esse código pode ser chamado enquanto o usuário ainda estiver trabalhando com a sua solução.
Inserir clip-art comando É Nada no Visual Studio Designer
Abrindo o Inserir menu , apontando para Imagem, e clicando em Clip-art não abrir o Clip-art painel de tarefas quando Excel ou Word é aberto no designer do Visual Studio.Para adicionar clip-art usando os comandos de menu, você deve abrir a Copiar da pasta de trabalho ou documento que está em pasta do projeto principal (não a Copiar que está na pasta \bin) fora do Visual Studio, adicionar o clip-arts e, em seguida, salvar a pasta de trabalho ou documento.
Não é possível criar um projeto de nível de documento 2003 mesmo que o Office 2003 está instalado
Esse problema pode ocorrer se você desinstalar o 2007 Microsoft Office Sistema e, em seguida, instala o Office 2003.Você pode receber o seguinte erro mensagem quando você Criar um projeto de personalização de nível de documento 2003:
"Uma versão compatível do Microsoft Office não está instalado neste computador."
Para resolver esse problema:
Fechar Visual Studio.
Abrir apropriado aplicativo do Microsoft Office e, em seguida, feche o aplicativo.Por exemplo, se você deseja criar um projeto de pasta de trabalho do Excel 2003, abrir e, em seguida, Fechar Excel 2003.
Iniciar Visual Studio e criar o projeto.
Pastas de trabalho do Excel tornam-se desativado quando um projeto de personalização em nível de documento Excel está Abrir no Visual Studio
Quando você abre o Excel 2007 e, em seguida, Criar um projeto de personalização de nível de documento do Excel 2007 no Visual Studio, a pasta de trabalho que é aberta pela Primeiro vez pára de responder.
Para resolver esse problema, clique na planilha que esteja visível no designer do Visual Studio.A pasta de trabalho que é aberta pela Primeiro vez começa responder.
Consulte também
Tarefas
Como: Implantar para uso off-line de documentos (sistema de 2003)
Solucionando problemas do Office em tempo de execução
Conceitos
Proteger implantação (sistema de 2003)
Tarefas Comuns na Programação para Office