Renomeando Namespaces de parte da Web (Ou, Uma razão para "um Web Part ou controle de formulário da Web nesta página não pode ser exibido ou importado)”

Tenho vindo a trabalhar para começ meus costeletas dev voltar e para isso, trabalhando em um projeto de passatempo que tem os seguinte bits:

  • Conectado web part que recebe um site ou URL de coleção site de fora da caixa de web part de filtro de texto do SharePoint.
  • Esta peça web Pesquise todas as informações o site selecionado, gera um pacote XML e de mãos-lo fora para WP outro na página (por meio de conexões).
  • 3web part de área de trabalho remota recebe o XML e faz coisas de transformar alguns XSL.

Eu queria mudar o nome o espaço de nome de todos os bits para "Nivlag" e eu estava ficando bater-se com o seguinte erro quando implantei o web part para  meu ambiente de teste:

Uma Web Part ou controle de formulário da Web nesta página não pode ser exibido ou importado.  O tipo não pôde ser encontrado ou não está registrado como seguro.

Este é o problema de um novato, mas eu pensei que eu iria anotar uma nota sobre isso de qualquer maneira.  Eu causou o erro quando eu direito-estalou sobre o espaço para nome padrão (que adotou o padrão para o nome do projeto), Refatorar selecionado e, em seguida, renomear da seguinte forma:

image

Que mudar o nome de coisas em um monte de lugares no projeto, mas não é suficiente.  Você também precisará fazer vários outros ajustes:

1. Abrir e editar um arquivo manualmente, "ShaerPointProjectItem.spdata". Que um XML arquivo que tem uma <SafeControls> seção.  A função mudar o nome espaço para nome não está ciente deste arquivo por que razão, Portanto, você precisará atualizar manualmente o Namespace lá.

2. Edite manualmente o arquivo. WebPart.  Por que razão, Visual Studio não altera esta referência tampouco.  Alterar o "<tipo>"nó para refletir seu namespace mudou lá.

3. Por último, Dependendo de como você refatorado o namespace Alterar, visual studio também pode atualizado a Cadeia de caracteres que referencia o arquivo. ascx aqui:

Private const string _ascxPath = @ "~/_CONTROLTEMPLATES … …

Talvez você precise alterar que volta.  Você vai porque você obterá um erro semelhante à seguinte quando você tenta e adicionar a web part a uma zona de web Parts em um  página:

Erro de servidor em ' /’ Aplicação.


O arquivo ' /_CONTROLTEMPLATES/Nivlag/VisualWebPart1/VisualWebPart1UserControl.ascx’ não existe.

Descrição: Ocorreu uma exceção não tratada durante a execução da Solicitar da web atual. Examine o Rastrear da pilha para obter mais informações sobre o erro e onde ele se originou no código.
Detalhes da exceção: Sistema.Web.HttpException: O arquivo ' /_CONTROLTEMPLATES/Nivlag/VisualWebPart1/VisualWebPart1UserControl.ascx’ não existe.
Erro de origem:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

 

Corrigir a referência lá e você estaria bom ir.

4. Por último, o arquivo ASCX real ainda tinha uma referência (para mim) o namespace original antigo (a função rename/refatorar não corrigir isso).  Você vai saber sobre esse erro quando você tentar adicionar a web part à página e obter a seguinte mensagem:

Erro de servidor em ' /’ Aplicação.


Erro do analisador

Descrição: Ocorreu um erro durante a análise de um recurso necessário para atender esta solicitação. Por favor, revise os seguintes detalhes de erro de análise específica e modificar seu arquivo de origem apropriadamente.
Mensagem de erro do analisador: Não foi possível carregar o tipo 'RenameNameSpace.VisualWebPart1.VisualWebPart1UserControl'.
Erro de origem:

Linha 6:  <%@ Import Namespace="Microsoft.SharePoint" %> 
Linha 7:  <%@ Registo Tagprefix = "WebPartPages" Namespace="Microsoft.SharePoint.WebPartPages" Assembly="Microsoft.SharePoint, Versão = 14.0.0.0, Cultura = neutro, PublicKeyToken = 71e9bce111e9429c" %>
Linha 8:  <%@ Control Language = "c#" AutoEventWireup = "true" CodeBehind="VisualWebPart1UserControl.ascx.cs" Inherits="RenameNameSpace.VisualWebPart1.VisualWebPart1UserControl" %>

Arquivo de origem: /_CONTROLTEMPLATES/RenameNameSpace/VisualWebPart1/VisualWebPart1UserControl.ascx    Linha: 8


Informações sobre versão: Microsoft.NET Framework versão:2.0.50727.4927; ASP.NET versão:2.0.50727.4927

Editar diretamente o arquivo. ascx e corrigir o namespace quebrado.

Neste ponto, Eu tive finalmente uma web part no namespace da minha escolha de vida.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Um pensamento em "Renomeando Namespaces de parte da Web (Ou, Uma razão para "um Web Part ou controle de formulário da Web nesta página não pode ser exibido ou importado)”

  1. Pingback: Tweets que mencionam renomeando Namespaces de parte da Web (Ou, Uma razão para "um Web Part ou controle de formulário da Web nesta página não pode ser exibido ou importado)"«De Paul Galvin SharePoint espaço -- Topsy.com

Deixar uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *