Das Element 'packages' ist nicht deklariert

131

Bei Verwendung von asp.net mvc 3 project mit vs 2010 habe ich viele Warnungen wie die folgenden:

Ich frage mich, ob ich etwas falsch gemacht habe und etwas ändern muss, da dies das Standardprojekt ist, das in Visual Studio enthalten ist.

Warnung 1 Das Element 'packages' ist nicht deklariert. C: \ Benutzer \ LUIS.SIMBIOS \ Dokumente \ Visual Studio 2010 \ Projekte \ SlnHR \ HR \ packages.config 2 2 HR

Warnung 2 Validierung (XHTML 1.0 Transitional): Das Attribut 'Zeichensatz' ist kein gültiges Attribut des Elements 'Meta'. C: \ Benutzer \ LUIS.SIMBIOS \ Dokumente \ Visual Studio 2010 \ Projekte \ SlnHR \ HR \ Views \ Shared_Layout.cshtml 4 11 HR

Warnung 20 Fehler 6002: In der Tabelle / Ansicht 'HR.dbo.vw_aspnet_Users' ist kein Primärschlüssel definiert. Der Schlüssel wurde abgeleitet und die Definition als schreibgeschützte Tabelle / Ansicht erstellt. C: \ Benutzer \ LUIS.SIMBIOS \ Dokumente \ Visual Studio 2010 \ Projekte \ 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>
Luis Valencia
quelle

Antworten:

345

Aus dieser Antwort entnommen .

  1. Schließen Sie Ihre packages.configDatei.
  2. Bauen
  3. Warnung ist weg!

Dies ist das erste Mal, dass ich sehe, dass das Ignorieren eines Problems dazu führt, dass es verschwindet ...

Bearbeiten im Jahr 2020: Wenn diese Warnung angezeigt wird, sollten Sie ein Upgrade auf PackageReference in Betracht ziehen, wenn Sie können

Joel
quelle
1
Wie @ carsten-könig sagte, ist das Schema in der Tat nicht validiert (VS wird sich über einen solchen Fehler in jeder XML-Datei beschweren, nicht nur für Nuget). Da die automatisch generierte Datei jedoch sicher ist (und nur von Nuget verwendet wird - das XML problemlos verarbeitet), ist es vollkommen in Ordnung, die Warnungen zu ignorieren.
Joel
7
In VS2013 hat das bei mir nicht funktioniert. Obwohl das Projekt in Ordnung ist, ist die Warnung "squiggle" immer noch vorhanden, wenn die Datei packages.config erneut geöffnet wird.
JosephDoggie
2
@ JosephDoggie In jedem VS erhalten Sie das gleiche Verhalten. Wie bereits erwähnt, erhalten Sie diese für jede nicht validierte XML-Datei. Der einzige Unterschied besteht darin, dass es ziemlich sicher ist, die Warnungen zu ignorieren, da diese Datei automatisch generiert wird und nur von Nuget gelesen werden soll.
Joel
In meinem Fall war die Datei packages.config nicht geöffnet. Öffne es. Schließe es. Wiederaufbau!. Das hat bei mir funktioniert.
Legenden
11
Es ist 2018. Gleicher Fehler. Gleiche Lösung. Goddamnit
kDar
33

Verwenden Sie <packages xmlns="urn:packages">anstelle von<packages>

Dunkle Materie
quelle
Ich habe eine Fehlermeldung MSB3644 erhalten, mit der ich das Projekt nicht erstellen konnte. Irgendwie habe ich durch das, was du sagst, meinen Fehler behoben! Ich habe keine Ahnung, warum Sie mir zweimal das Leben gerettet hätten, wenn Sie mir erklären könnten, dass ich es schätzen würde.
Diego Orellana
1
Wie haben Sie herausgefunden, dass es xmlns "urn: packages" benötigt? - Danke im Voraus!
Jimmyt1988
1
Ich habe im Internet gesucht und irgendwo Hinweise gefunden. Dann habe ich es versucht und es hat funktioniert.
Dunkle Materie
Es wird ein Fehler
ausgegeben
1
Dies führt dazu, dass mein Projekt (VS2015) kein Nuget-Paket erkennt
DanielV
12

Oh ok - jetzt verstehe ich es. Sie können dieses ignorieren - das XML dafür ist einfach nicht korrekt - das packages-Element ist in der Tat nicht deklariert (es gibt keinen Verweis auf ein Schema oder was auch immer). Ich denke, dies ist ein bekannter kleiner Fehler, der nichts bewirkt, da dies nur von NuGet verwendet wird.

Siehe auch diese ähnliche Frage .

Carsten
quelle
Nun, es ist richtig, aber hauptsächlich, weil es keine Möglichkeit gibt, dass es falsch ist.
Grault
5

Ändern Sie den Knoten in und erstellen Sie eine Datei, packages.xsd, im selben Ordner (und fügen Sie sie in das Projekt ein) mit den folgenden Inhalten:

<?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>
Tom English
quelle