O elemento de configuração não está declarado

86

Estou trabalhando no Visual Studio 2012 Express Edition. Eu adicionei um arquivo XML App.config da seguinte maneira:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>

A primeira coisa que acontece é um aviso que diz "O elemento 'configuração' não está declarado". Alguém sabe por que isso está acontecendo? Parece que os elementos não podem ser declarados dentro de até que isso seja resolvido.

Obrigado!

Este é o XML completo:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="Version" value="779" />
<add key="TimeOut" value="60000" />
<add key="LogFileName" value="Log.txt" />
<!-- your Developer Id with eBay -->
<add key="Environment.DevId" value="" />
<!-- your Application Id with eBay -->
<add key="Environment.AppId" value="" />
<!-- your Application Certificate with eBay -->
<add key="Environment.CertId" value="" />
<!-- API Server URL -->
<!-- For production site use: https://api.ebay.com/wsapi -->
<!-- For Sandbox use: https://api.sandbox.ebay.com/wsapi -->
<add key="Environment.ApiServerUrl" value="https://api.sandbox.ebay.com/wsapi" />
<!-- EPS Server URL -->
<!-- For production site use: https://api.ebay.com/ws/api.dll"/-->
<add key="Environment.EpsServerUrl" value="https://api.sandbox.ebay.com/ws/api.dll" />
<!-- eBay Signin URL -->
<!-- For production site use: https://signin.ebay.com/ws/eBayISAPI.dll?SignIn -->
<!-- https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?SignIn -->
<add key="Environment.SignInUrl" value="https://signin.sandbox.ebay.com/ws/eBayISAPI.dll?SignIn" />
<!-- ViewItem URL -->
<!-- For production site use: http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item={0} -->
<add key="Environment.ViewItemUrl" value="http://cgi.sandbox.ebay.com/ws/eBayISAPI.dll?ViewItem&amp;item={0}" />
<!-- token is for both API server and EPS server -->
<add key="UserAccount.ApiToken" value="" />
<!-- eBay site ID -->
<add key="UserAccount.eBayUserSiteId" value="0" />
<add key="logexception" value="true"/>
<add key="logmessages" value="true"/>
<add key="logsdkmessages" value="true"/>
<add key="logsdk" value="true"/>
<add key="logfile" value="Log.txt"/>
<!-- Rule Name-->
<add key="RuName" value=""/>
<!-- Set this if you access eBay API server behind a proxy server-->
<add key="Proxy.Host" value =""/>
<add key="Proxy.Port" value =""/>
<!-- set proxy server username/password if necessary-->
<add key="Proxy.Username" value=""/>
<add key="Proxy.Password" value=""/>

Eae
fonte
4
Você pode ter que dar uma olhada na aparência do arquivo DotNetConfig.xsd. pode ser encontrado em algum lugar como C: \ Arquivos de programas (x86) \ Microsoft Visual Studio 10.0 \ Xml \ Schemas
Adriaan Stander
Qual é o erro exato, o que dá esse aviso? com um frame full stack, por favor?
Simon Mourier
Funciona na minha edição VS2012 Express.
Martin Mulder
1
É uma questão de intellisense. Com um novo aplicativo de console, abra o App.config, e o elemento <configuration> é sublinhado em azul com o erro "O elemento 'configuração' não está declarado", no entanto, você ainda pode adicionar uma seção <appsettings> com seu configurações nele e referenciá-los com a classe ConfigurationManager, mas ao adicionar os itens appsettings e <add key ..., o intellisense não aparece. Puramente um problema de intellisense sobre o qual eu queria mais informações, daí a recompensa.
seekerOfKnowledge
1
resposta errada escolhida.
JJS

Respostas:

23

Eu tive o mesmo problema. Não é um erro, é simplesmente um aviso; então seu aplicativo ainda deve compilar. Usei o seguinte arquivo de configuração simples e o aviso ainda é produzido.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime 
             version="v4.0"sku=".NETFramework,
             Version=v4.5"/>
    </startup>
</configuration>

É um problema que foi levantado no site do MSDN, mas não parece ter sido resolvido de forma satisfatória. Veja o link abaixo:

http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/18a1074f-668f-4fe3-a8d9-4440db797439

Stephen Scully
fonte
343

Vá para o menu XML (item de menu superior do Visual Studio), escolha esquemas e localize DotNetConfig.xsd e escolha Usar este esquema .

XML - esquemas

Editar Esquema XML

Seu problema vai resolver com certeza

Ramakrishna
fonte
6
Esta deve ser a resposta. Olhando para a data em que esta resposta foi postada (agosto de 15), não tenho certeza se essa resposta existia na época da pergunta (setembro de 12). (Foi?)
Ian
1
Isso por si só não funcionou para mim. Considere o seguinte: stackoverflow.com/questions/4355278/…
Matt
2
Essa resposta resolveu o problema no Visual Studio 2017. De qualquer forma, não entendo por que o DotNetConfig.xsd não é usado por padrão quando um arquivo .config é criado.
Gael
Ramakrishna, seu homem! Funcionou perfeitamente. O aplicativo ainda compila, mas a irritante mensagem de aviso desapareceu.
puffgroovy
Isso funciona, mais informações sobre isso que notei em minha solução são para .net versão 4.5 o esquema DotNetConfig.xsd é selecionado por padrão, mas para .net versão 4.6 DotNetConfig.xsd precisa ser selecionado como @Ramakrishna sugerido nesta resposta. Obrigado!
ZeeProgrammer de
34
<configuration xmlns="schema URL">
   <!-- configuration settings -->
</configuration>

faça mudanças, como acima e tente

Ravindra Bagale
fonte
1
O aviso foi embora. Muito obrigado. Devo marcar isso como a resposta.
Eae
Parece que agora os elementos dentro da configuração não são lidos pelo ambiente que é o Visual Studio 2012 Express Edition.
Eae
@sepoto: se você remover o namespace xmlns, ele novamente
emitirá um
1
Incluí o App.config em sua totalidade em minha postagem. Por algum motivo, não consegui fazê-lo funcionar corretamente com o Visual Studio 2012 Express C # Environment. Tentei sua solução acima, entretanto, recebi avisos para os elementos dentro da configuração, então as coisas se tornaram discutíveis. Agradeço muito sua ajuda, mas não acredito que haja uma resposta ainda.
Eae
1
Esta resposta está parcialmente correta: especificando um xmlns (o valor pode ser qualquer coisa), o aviso para configurationdesaparece, mas uma mensagem de informação é emitida para configuratione para cada subelemento. Se o xmlns apontar para um DTD real que define todos os elementos, essas mensagens também devem desaparecer.
Mike C
6

Eu tive que -> Ir para o menu XML (item de menu superior do visual studio) escolher esquemas e selecionar DotNetConfig.xsd AND RazorCustomSchema.xsd AND EntityFrameworkConfig_6_1_0.xsd

user847335
fonte
1

Acabei de ver este pop-up de aviso dentro de um arquivo xml gerado automaticamente enquanto trabalhava em um projeto xaml.

Usando Debug-> Clean Solution e Debug-> Rebuild Solution consertou. Pode ser que você queira tentar isso antes de ficar imaginando os esquemas.

Ashbygeek
fonte
0

Visual Studio 2013 Express Edition está sem DotNetConfig.xsd ( https://connect.microsoft.com/VisualStudio/feedback/details/817322/dotnetconfig-xsd-files-not-present-in-vs-2013-express-for- desktop ).

Então, para se livrar do aviso no VS 2013 Express:

O aviso deve ter sumido.

appyCrabby
fonte
0

Escolha usar este esquema. DotNetConfig.xsd

Menu XLM ..... Visual Studio

Funciona perfeitamente.

Felipe R Valera
fonte
Por favor, inclua uma explicação de como seu código corrige o bug, em vez de apenas muitos códigos - stackoverflow.com/help/how-to-answer
Dov Benyomin Sohacheski
0

Eu estava tendo menos espaço na minha unidade, o que pode ter resultado no carregamento incompleto da minha solução de aplicativo. Este problema "o-elemento-de-configuração-não-declarado" foi resolvido depois que criei algum espaço na minha unidade.

Vallabh
fonte
0

Eu também recebi o mesmo aviso. Depois de pensar um pouco percebi meu erro ao trabalhar com SQL (MS SQL).

Warning: the 'configuration' element is not declared

Usando C #

Código App.Config:

<connectionStrings>
    <add name="dbx" connectionString="Data Source=ServerNameHere;Initial Catalog=DatabaseNameHere;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

* isso chama o nome do banco de dados em connectionStrings, quando eu conectei meu código SQL como uma prática, sempre uso o nome do banco de dados, esquema e tabela. Essa prática não funcionou bem no Visual Studio, pois sou um iniciante. Removi o nome do banco de dados da minha sintaxe SQL e só chamei do esquema, tabela de dados. Isso resolveu o problema para mim.

Form.CS:

 using (SqlCommand cmd = new SqlCommand("SELECT * FROM [DatabaseName].[Schema].[TableName] WHERE [MEPeriod] = '2020-06-01'", con))

Atualizado para:

using (SqlCommand cmd = new SqlCommand("SELECT * FROM [Schema].[TableName] WHERE [MEPeriod] = '2020-06-01'", con))

Isso funcionou para mim, espero que seja útil.

Kenneth
fonte