Element „packages” nie jest zadeklarowany

131

Podczas korzystania z projektu asp.net mvc 3 z vs 2010 mam wiele ostrzeżeń, takich jak te poniżej:

Zastanawiam się, czy zrobiłem coś źle i muszę coś zmienić, ponieważ jest to projekt z pudełka, który jest dostępny w programie Visual Studio.

Ostrzeżenie 1 Element „packages” nie jest zadeklarowany. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ packages.config 2 2 HR

Ostrzeżenie 2 Walidacja (XHTML 1.0 Transitional): Atrybut „charset” nie jest prawidłowym atrybutem elementu „meta”. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ Views \ Shared_Layout.cshtml 4 11 HR

Ostrzeżenie 20 Błąd 6002: Tabela / widok „HR.dbo.vw_aspnet_Users” nie ma zdefiniowanego klucza podstawowego. Klucz został wywnioskowany, a definicja została utworzona jako tabela / widok tylko do odczytu. 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 Valencia
źródło

Odpowiedzi:

345

Zaczerpnięte z tej odpowiedzi .

  1. Zamknij packages.configplik.
  2. Budować
  3. Ostrzeżenie minęło!

Po raz pierwszy widzę, że ignorowanie problemu sprawia, że ​​znika ...

Edytuj w 2020 r .: jeśli przeglądasz to ostrzeżenie, rozważ uaktualnienie do PackageReference, jeśli możesz

Joel
źródło
1
Jak stwierdził @ carsten-könig, schemat rzeczywiście nie został zweryfikowany (VS będzie narzekać na taki błąd w dowolnym pliku XML, nie tylko w przypadku nuget). Ale ponieważ plik jest generowany automatycznie, jest bezpieczny (i używany tylko przez nuget - który dobrze obsługuje XML), zignorowanie ostrzeżeń jest całkowicie w porządku.
Joel
7
Właściwie w VS2013 to nie zadziałało. Mimo że projekt buduje się prawidłowo, ostrzeżenie „squiggle” jest nadal wyświetlane po ponownym otwarciu pliku packages.config.
JosephDoggie
2
@JosephDoggie W każdym VS będziesz miał takie samo zachowanie. Jak wspomniano, otrzymasz je dla każdego niezatwierdzonego pliku XML. Jedyną różnicą jest to, że ponieważ ten plik jest generowany automatycznie i powinien być odczytywany tylko przez nuget, zignorowanie ostrzeżeń jest całkiem bezpieczne.
Joel
W moim przypadku plik packages.config nie był otwarty. Otwórz to. Zamknij to. Odbudować!. To zadziałało dla mnie.
Legends
11
jest 2018. Ten sam błąd. To samo rozwiązanie. Cholera
kDar
33

Użyj <packages xmlns="urn:packages">zamiast<packages>

Ciemna materia
źródło
Wystąpił błąd MSB3644, który nie pozwolił mi zbudować projektu. W jakiś sposób robiąc to, co mówisz, naprawiłem mój błąd! Nie mam pojęcia, dlaczego, jeśli możesz mi wytłumaczyć, że byłbym wdzięczny, dwukrotnie uratowałbyś mi życie.
Diego Orellana
1
Jak dowiedziałeś się, że potrzebuje xmlns "urn: packages"? - Z góry dziękuję!
Jimmyt1988
1
Szukałem w internecie i gdzieś znalazłem jakieś wskazówki. Potem spróbowałem tego i zadziałało.
Dark Matter
Zgłasza błąd jako: VS nie może znaleźć informacji o schemacie dla elementu urn: packages
jainashish
1
To sprawia, że ​​mój projekt (VS2015) nie rozpoznaje żadnego pakietu
NuGet
12

O ok - teraz rozumiem. Możesz zignorować ten - XML ​​dla tego jest po prostu nieprawidłowy - element packages rzeczywiście nie jest zadeklarowany (nie ma odniesienia do schematu lub czegokolwiek). Myślę, że jest to znany drobny błąd, który nic nie da, ponieważ będzie go używał tylko NuGet.

Zobacz również to podobne pytanie .

Carsten
źródło
Cóż, to prawda, ale głównie dlatego, że nie ma możliwości, aby było nieprawidłowe.
Grault
5

Zmień węzeł na i utwórz plik, packages.xsd, w tym samym folderze (i dołącz go do projektu) z następującą zawartością:

<?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
źródło