L'elemento 'pacchetti' non è dichiarato


132

Quando utilizzo asp.net mvc 3 project con vs 2010 ho molti avvertimenti come quelli qui sotto:

Mi chiedo se ho fatto qualcosa di sbagliato e ho bisogno di cambiare qualcosa, perché questo è il progetto out of the box che rientra in Visual Studio.

Avviso 1 L'elemento 'pacchetti' non è dichiarato. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ pacchetti.config 2 2 HR

Convalida avviso 2 (XHTML 1.0 Transitional): l'attributo 'charset' non è un attributo valido dell'elemento 'meta'. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ Views \ Shared_Layout.cshtml 4 11 HR

Avviso 20 Errore 6002: la tabella / vista "HR.dbo.vw_aspnet_Users" non ha una chiave primaria definita. La chiave è stata dedotta e la definizione è stata creata come tabella / vista di sola lettura. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HRRazorForms \ Models \ HR.edmx 1 1 HRRazorForms

web.config

<?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->

<configuration>
  <connectionStrings>
    <add name="ApplicationServices" connectionString="data source=xx; User Id=development; Password=xxxxx; Initial Catalog=HR" providerName="System.Data.SqlClient" />
  <add name="HREntities" connectionString="metadata=res://*/Models.HR.csdl|res://*/Models.HR.ssdl|res://*/Models.HR.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=xxxx;Initial Catalog=HR;User ID=development;Password=xxxx;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>

  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies>
    </compilation>

    <authentication mode="Forms">
      <forms loginUrl="~/Account/LogOn" timeout="2880" />
    </authentication>

    <membership>
      <providers>
        <clear />
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>

    <profile>
      <providers>
        <clear />
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
      </providers>
    </profile>

    <roleManager enabled="false">
      <providers>
        <clear />
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>

    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>

  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

packages.config

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="EntityFramework" version="4.1.10331.0" />
  <package id="jQuery" version="1.5.1" />
  <package id="jQuery.UI.Combined" version="1.8.11" />
  <package id="jQuery.Validation" version="1.8.0" />
  <package id="jQuery.vsdoc" version="1.5.1" />
  <package id="Modernizr" version="1.7" />
</packages>

2
possibile duplicato dell'elemento 'pacchetti'
Carsten

Risposte:


345

Tratto da questa risposta .

  1. Chiudi il tuo packages.configfile.
  2. Costruire
  3. L'avvertimento è sparito!

Questa è la prima volta che vedo che ignorare un problema in realtà lo fa andare via ...

Modifica nel 2020: se stai visualizzando questo avviso, considera l'upgrade a PackageReference se puoi


1
Come affermato da @ carsten-könig, lo schema non è effettivamente convalidato (VS si lamenterà di tale errore in qualsiasi file XML, non solo per nuget). Ma dato che il file generato automaticamente è sicuro (e usato solo da Nuget - che gestisce bene l'XML), è perfettamente corretto ignorare gli avvisi.
Gioele,

7
In realtà, in VS2013, questo non ha funzionato per me. Sebbene il progetto funzioni correttamente, l'avviso "squiggle" è ancora presente quando si riapre il file packages.config.
JosephDoggie,

2
@JosephDoggie In qualsiasi VS otterrai lo stesso comportamento. Come detto, otterrai quelli per qualsiasi file XML non convalidato. L'unica differenza è che poiché questo file è generato automaticamente e dovrebbe essere letto solo da Nuget, è abbastanza sicuro ignorare gli avvisi.
Gioele

Nel mio caso il file packages.config non era aperto. Aprilo Chiudilo. Ricostruire!. Questo ha funzionato per me.
Legends,

11
è il 2018. Stesso bug. Stessa soluzione Maledizione
KDar

34

Utilizzare <packages xmlns="urn:packages">al posto di<packages>


Ho ricevuto un errore MSB3644 che non mi ha permesso di costruire il progetto. In qualche modo facendo quello che dici ho risolto il mio bug! Non ho idea del perché, se mi spiegassi, lo apprezzerei, mi avresti salvato la vita due volte.
Diego Orellana,

1
Come hai scoperto che aveva bisogno di xmlns "urn: pacchetti"? - Grazie in anticipo!
Jimmyt1988,

1
Stavo cercando in internet e ho trovato alcuni indizi da qualche parte. Poi ho provato questo e funzionava.
Dark Matter,

Genera errore in quanto: VS non è riuscito a trovare le informazioni sullo schema per l'urna dell'elemento: pacchetti
jainashish

1
Questo fa sì che il mio progetto (VS2015) non riconosca alcun pacchetto
nuget

12

Oh ok - ora capisco. Puoi ignorare questo - l'XML per questo non è proprio corretto - l'elemento package non è effettivamente dichiarato (non c'è alcun riferimento a uno schema o altro). Penso che questo sia un bug minore noto che non farà nulla perché solo NuGet lo utilizzerà.

Vedi anche questa domanda simile .


Bene, è corretto, ma principalmente perché non c'è modo che sia errato.
Grault,

5

Modificare il nodo in e creare un file, pacchetti.xsd, nella stessa cartella (e includerlo nel progetto) con i seguenti contenuti:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
      targetNamespace="urn:packages" xmlns="urn:packages">
  <xs:element name="packages">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="package" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="id" type="xs:string" use="required" />
            <xs:attribute name="version" type="xs:string" use="required" />
            <xs:attribute name="targetFramework" type="xs:string" use="optional" />
            <xs:attribute name="allowedVersions" type="xs:string" use="optional" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.