Como corrigir o erro: "Não foi possível encontrar informações do esquema para o atributo / elemento", criando o esquema

148

Eu tenho um aplicativo de formulários do Windows escrito no VS2010 com C # e recebo os seguintes erros no app.configarquivo:

Message 4   Could not find schema information for the attribute 'name'
Message 8   Could not find schema information for the attribute 'name'
Message 12  Could not find schema information for the attribute 'name'
Message 5   Could not find schema information for the attribute 'serializeAs'
Message 15  Could not find schema information for the element 'CCP_Utility.Settings1'
Message 2   Could not find schema information for the element 'CCP_Utility.Properties.Settings'
Message 3   Could not find schema information for the element 'setting'
Message 1   Could not find schema information for the element 'userSettings'
Message 6   Could not find schema information for the element 'value'

O que preciso alterar no código para corrigir esse problema? Onde posso editar o que há CCP_Utility.Settings1e CCP_Utility.Properties.Settings?

Aqui está o app.configcódigo:

<configuration>
<configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
        <section name="CCP_Utility.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        <section name="CCP_Utility.Settings1" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>
<userSettings>
  <CCP_Utility.Properties.Settings>
    <setting name="SourceDir" serializeAs="String">
      <value />
    </setting>
    <setting name="TargetDir" serializeAs="String">
      <value />
    </setting>
    <setting name="CorpID" serializeAs="String">
      <value />
    </setting>
  </CCP_Utility.Properties.Settings>
    <CCP_Utility.Settings1>
        <setting name="sourceDir" serializeAs="String">
            <value />
        </setting>
        <setting name="targetDir" serializeAs="String">
            <value />
        </setting>
    </CCP_Utility.Settings1>

   </userSettings>
</configuration>
Brian McCarthy
fonte
Isso parece uma bobagem dessa pergunta: stackoverflow.com/questions/179927/… . Verifique a resposta por @ user57433.
rsbarro
@rsbarro, onde estão localizados a ferramenta de configuração EntLib e o arquivo DotNetConfig.xsd?
Brian McCarthy
Desculpe, não percebi que o usuário postou duas respostas para a pergunta. Eu estava referenciando a segunda resposta. Essa resposta, embora correta, era um pouco obscura, portanto fornecemos uma resposta mais detalhada abaixo.
rsbarro
1
Obrigado rsbarro! A pergunta original do StingyJack estava limitada a erros usando as seções de configuração da biblioteca corporativa, não simplesmente qualquer seção de configuração personalizada.
Lisa

Respostas:

169

ATUALIZAÇÃO Setembro de 2015
Esta resposta continua com votos positivos, por isso vou deixá-la aqui, pois parece ser útil para algumas pessoas, mas verifique as outras respostas de @reexmonkey e @Pressacco primeiro. Eles podem fornecer melhores resultados.

RESPOSTA ORIGINAL
Faça uma tentativa:

  1. No Visual Studio, abra o arquivo app.config ou web.config.
  2. Vá para o menu "XML" e selecione "Criar esquema". Esta ação deve criar um novo arquivo chamado "app.xsd" ou "web.xsd".
  3. Salve esse arquivo no seu disco.
  4. Volte para seu app.config ou web.config e, na janela de edição , clique com o botão direito do mouse e selecione Propriedades. A partir daí, verifique se o xsd que você acabou de gerar está relacionado na propriedade Schemas. Se não estiver lá, adicione-o.

Isso deve fazer com que essas mensagens desapareçam.

Salvei meu web.xsd na raiz da minha pasta da Web (que pode não ser o melhor lugar para isso, mas apenas para fins de demonstração) e minha propriedade Schemas se parece com isso:

"C: \ Arquivos de programas (x86) \ Microsoft Visual Studio 10.0 \ xml \ Schemas \ DotNetConfig.xsd" "Web.xsd"

rsbarro
fonte
10
@rsbarro, Obrigado sua resposta! Por que você tem 2 arquivos xsd? Criei o esquema e criei apenas 1 arquivo - app.xsd que salvei no diretório raiz. Os erros desapareceram, mas agora recebo um aviso: "O elemento global 'configuração' já foi declarado". Alguma ideia de como consertar isso?
Brian McCarthy
2
Basta usar a caixa de diálogo Propriedades para selecionar seu esquema ou adicionar outro esquema. Ao visualizar o app.config, clique com o botão direito do mouse na janela do editor e selecione Propriedades. Você deve ver esquemas no controle do Editor de propriedades que aparece. Além disso, se você clicar no botão "..." em Esquemas, poderá selecionar os esquemas que deseja usar para o seu arquivo de configuração usando uma boa interface gráfica.
rsbarro
3
Obrigado. Isso funcionou, mas há um bom lugar que eu possa ler para entender POR QUE isso acontece? Parece que, de repente, eu precisava gerar um esquema para o meu web.config depois de adicionar muito conteúdo ao DotNetOpenAuth e depois gerar novamente um arquivo edmx do zero. Faz sentido em "Você mudou muitas coisas, então algo foi vencido". de alguma maneira, mas seria útil saber por que o arquivo web.config precisaria espontaneamente de um esquema.
Froggythefrog
6
Ao gerar seu arquivo Web.xsd, inclua apenas os esquemas adicionados nas seções web / app.config (seções do usuário). Exclua todos os outros que já estão no esquema padrão ou outros .xsd incluídos.
Pagotti 11/07
10
NÃO NÃO NÃO!! Esta não é a "solução", pois nem sequer é um problema real. Veja e vote na resposta da @ pressacco. A resposta de reexmonkey também funciona. Por que esta resposta está recebendo tantos votos positivos? 1. Simplesmente ignore! Feche o app.config ou web.config e compile, você nem verá as mensagens. 2. Embora não seja necessário, resolva clicando com o botão direito do mouse nas propriedades .config, corrigindo o caminho para o XSD fornecido pelo VS. (resposta da @ pressacco) 3. Ou: altere as configurações do projeto, versão DotNet e vice-versa. Repita duas vezes. (resposta de reexmonkey). Pode causar problemas com as atualizações do pacote.
Pashute
217

A maneira mais rápida e fácil de resolver o problema:

  1. Clique com o botão direito do mouse no ícone do projeto no Solution Explorer e escolha "Propriedades".
  2. Vá para a guia "Aplicativo" e escolha uma estrutura de destino .NET anterior.
  3. Salve as alterações.
  4. Vá para a guia "Aplicativo" e escolha a estrutura de destino .NET inicial.
  5. Salvar alterações => problema resolvido!
reexmonkey
fonte
11
Doce! Trabalhou para mim no VS2012.
amo
4
Também funcionou para mim (VS2013 Premium).
Remco
5
Isso pode não funcionar na primeira tentativa. Eu precisava fazer isso duas vezes antes de funcionar no VS 2013 Express.
H2ONaCl
24
Trabalhou para mim no Visual Studio 2015. Seria bom se alguém pudesse explicar o porquê.
Jonathan Madeira
6
Não funcionou, atualização 2 do VS2015, .NET 4.5.2. Parece que as mensagens desaparecem, mas se você simplesmente abrir o arquivo XML novamente, elas voltarão.
Snoop
21

Um XSD está incluído no EntLib 5 e é instalado no diretório de esquema do Visual Studio. No meu caso, ele pode ser encontrado em:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd

CONTEXTO

  • Visual Studio 2010
  • Biblioteca corporativa 5

PASSOS PARA REMOVER OS AVISOS

  1. abra app.config no seu projeto do Visual Studio
  2. clique com o botão direito do mouse no editor de documentos XML, selecione "Propriedades"
  3. adicione o caminho completo ao "EnterpriseLibrary.Configuration.xsd"

A PARTE, DE LADO

Vale repetir que essas "Lista de erros" "Mensagens" ("Não foi possível encontrar informações de esquema para o elemento") são visíveis apenas quando você abre o arquivo app.config. Se você "Fechar todos os documentos" e compilar ... nenhuma mensagem será relatada.

Pressacco
fonte
1
Por caminho totalmente qualificado, quis dizer: use um caminho absoluto. Por exemplo C:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas\EnterpriseLibrary.Configuration.xsd. Em um sistema operacional Windows, um caminho relativo pode incluir caracteres. \ E .. \.
Pressacco
1
Obrigado pela informação sobre como fechar o arquivo XML para remover os avisos. ) Comportamento estranho (
Machtyn
8
O EnterpriseLibrary.Configuration.xsd está ausente no Visual Studio 2015?
Lucas
3
Simplesmente fechar o arquivo XML tornou a questão ir embora para mim
Taegost
1
Obrigado @Taegost, também fez isso por mim. (Meu problema, o dicionário personalizado de análise de código no VS2013, era um pouco diferente do indicado, mas os mesmos sintomas). Nada mais que eu tentei funcionou e isso estava me deixando louco. Quando eu abri o dicionário no editor, parece que a ferramenta de análise de código nem estava usando devido a esses erros!
sn00gan
1

Eu descobri que havia um erro de sintaxe no módulo relacionado e ele não estava compilando - o compilador não me disse isso. Apenas me deu o erro sobre o material app.config. VS2010. Depois de corrigir o erro de sintaxe, tudo estava bem.

flobadob
fonte
1

Este erro ocorre quando o seu projeto faz referência a esquemas desatualizados. Use o Visual Studio para gerar novos.

No Visual Studio, faça o seguinte:

  1. Abra seu app.configouweb.config arquivo .
  2. Vá para o XMLmenu e selecione Create Schema.

Isso acionará os arquivos ( app#.xsdaplicativo do Windows) ou web#.xsd(site) para gerar.

  1. Salve os arquivos xsd recém-gerados na raiz do projeto.
    • Abra seu arquivo App.configou web.config, clique com o botão direito do mouse no editor de texto e selecione propriedades e clique no... botão ao lado do valor para Esquemas.
    • Adicione o (s) arquivo (s) xsd recém-gerado usando o Add botão
    • Clique OK

As informações do esquema Não foi possível encontrar os erros de atributo / elemento agora devem ser resolvidas.

WonderWorker
fonte
1

Simples: no designer de relatórios do Visual Studio
1. Abra o relatório no modo de design e exclua o conjunto de dados do arquivo RDLC
2. Abra o Gerenciador de soluções e exclua o arquivo XSD real (corrompido)
3. Adicione o conjunto de dados novamente ao arquivo RDLC.
4. O procedimento acima criará o novo arquivo XSD.
5. Mais detalhado está abaixo.

No Visual Studio, abra o arquivo RDLC Report no modo Design. Clique no relatório e, em seguida, selecione Exibir e, em seguida, Dados do relatório no menu da linha superior. Selecione Conjuntos de dados e clique com o botão direito do mouse e exclua o conjunto de dados do relatório. Em seguida, abra o Gerenciador de Soluções, se ainda não estiver aberto no seu Visual Studio. Localize o arquivo XSD (deve ser o mesmo nome que o conjunto de dados que você acabou de excluir do relatório). Agora volte e clique com o botão direito do mouse nos conjuntos de dados dos dados do relatório e selecione Adicionar conjunto de dados. Isso criará um novo arquivo XSD e gravará as propriedades do conjunto de dados no relatório. Agora sua mensagem de erro desaparecerá e os dados ausentes aparecerão nos seus relatórios.

Greg T.
fonte
0

Quando isso aconteceu comigo (do nada), eu estava prestes a mergulhar na resposta superior acima, e então imaginei que fecharia o projeto, fecharia o Visual Studio e reabriria tudo. Problema resolvido. VS bug?

Rockin Raul
fonte
Exagero. Fechar o editor de arquivo App.config no VS é suficiente. VS bug, talvez.
Jirka Hanika
0

Eu tinha isso no VS 2012, onde o "Nome da seção" havia sido alterado em um projeto e o corrigi, excluindo "app.config" no projeto e clicando com o botão direito do mouse no projeto no "Gerenciador de Soluções", selecionando " Propriedades ", depois" Configurações "e, em seguida, faça uma alteração em uma das configurações, salvando e reconstruindo. Isso criou um novo app.config com as informações corretas.

Davy C
fonte
0

No meu caso, eu tinha uma referência ambígua no meu código. Reiniciei o Visual Studio e pude ver a mensagem de erro. Quando resolvi isso, o outro erro desapareceu.

Sofia Khwaja
fonte
-1

A maior parte do que escrevo já foi coberta pela Pressacco, mas isso é específico ao SpecFlow.

Eu estava recebendo esta mensagem para o <specFlow>elemento e, portanto, adicionei um specflow.xsdarquivo à solução nesta resposta (com algumas modificações para permitir o <plugins>elemento).

Posteriormente, eu (como Pressacco), cliquei com o botão direito do mouse no buffer de arquivo app.confige nas propriedades selecionadas e Schemas, depois, adicionei "specflow.xsd"ao final. A totalidade Schemasagora lê:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\1033\DotNetConfig.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\EntityFrameworkConfig_6_1_0.xsd" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\xml\Schemas\RazorCustomSchema.xsd" "specflow.xsd"
Tahir Hassan
fonte