L'élément 'packages' n'est pas déclaré

132

Lorsque vous utilisez le projet asp.net mvc 3 avec vs 2010, j'ai beaucoup d'avertissements comme ceux ci-dessous:

Je me demande si j'ai fait quelque chose de mal et j'ai besoin de changer quelque chose, car c'est le projet prêt à l'emploi qui entre dans Visual Studio.

Avertissement 1 L'élément 'packages' n'est pas déclaré. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ packages.config 2 2 HR

Avertissement 2 Validation (XHTML 1.0 Transitional): l'attribut 'charset' n'est pas un attribut valide de l'élément 'meta'. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ Views \ Shared_Layout.cshtml 4 11 HR

Avertissement 20 Erreur 6002: la table / vue 'HR.dbo.vw_aspnet_Users' n'a pas de clé primaire définie. La clé a été déduite et la définition a été créée en tant que table / vue en lecture seule. 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>
Luis Valence
la source
2
un éventuel duplicata de l' élément nuget 'packages' n'est pas déclaré avertissement
Carsten

Réponses:

345

Tiré de cette réponse .

  1. Fermez votre packages.configdossier.
  2. Construire
  3. L'avertissement est parti!

C'est la première fois que je vois qu'ignorer un problème le fait disparaître ...

Modifier en 2020: si vous consultez cet avertissement, envisagez de passer à PackageReference si vous le pouvez

Joël
la source
1
Comme l'a dit @ carsten-könig, le schéma n'est en effet pas validé (VS se plaindra d'une telle erreur dans n'importe quel fichier XML, pas seulement pour nuget). Mais comme le fichier est généré automatiquement est sûr (et utilisé uniquement par nuget - qui gère très bien le XML), il est parfaitement normal d'ignorer les avertissements.
Joel
7
En fait, dans VS2013, cela n'a pas fonctionné pour moi. Bien que le projet se construise correctement, l'avertissement «squiggle» est toujours là lorsque le fichier packages.config est rouvert.
JosephDoggie
2
@JosephDoggie Dans tous les VS, vous obtiendrez le même comportement. Comme indiqué, vous les obtiendrez pour tout fichier XML non validé. La seule différence est que puisque ce fichier est généré automatiquement et censé être lu uniquement par nuget, il est assez prudent d'ignorer les avertissements.
Joel
Dans mon cas, le fichier packages.config n'était pas ouvert. Ouvrez-le. Ferme le. Reconstruire!. Cela a fonctionné pour moi.
Legends
11
c'est 2018. Même bug. Même solution. Goddamnit
kDar
34

Utiliser <packages xmlns="urn:packages">à la place de<packages>

Matière noire
la source
J'ai eu une erreur MSB3644 qui ne m'a pas permis de créer le projet. D'une manière ou d'une autre, en faisant ce que vous dites, j'ai corrigé mon bug! Je ne sais pas pourquoi, si vous pouviez m'expliquer que j'apprécierais, vous m'auriez sauvé la vie deux fois.
Diego Orellana
1
Comment avez-vous découvert qu'il avait besoin de xmlns "urn: packages"? - Merci d'avance!
Jimmyt1988
1
Je cherchais sur Internet et j'ai trouvé des indices quelque part. Ensuite, j'ai essayé cela et cela fonctionnait.
Dark Matter
Il génère une erreur comme: VS n'a pas pu trouver d'informations de schéma pour l'élément urn: packages
jainashish
1
Cela fait que mon projet (VS2015) ne reconnaît aucun paquet
nuget
12

Oh ok - maintenant je comprends. Vous pouvez ignorer celui-ci - le XML pour cela n'est tout simplement pas correct - l'élément packages n'est en effet pas déclaré (il n'y a aucune référence à un schéma ou autre). Je pense que c'est un bug mineur connu qui ne fera rien car seul NuGet l'utilisera.

Voir également cette question similaire .

Carsten
la source
Eh bien, c'est correct, mais principalement parce qu'il n'y a aucun moyen que ce soit incorrect.
Grault
5

Changez le nœud et créez un fichier, packages.xsd, dans le même dossier (et incluez-le dans le projet) avec le contenu suivant:

<?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 anglais
la source