Элемент 'packages' не объявлен

132

При использовании проекта asp.net mvc 3 с vs 2010 у меня появляется множество предупреждений, подобных приведенным ниже:

Интересно, сделал ли я что-то не так и мне нужно что-то изменить, потому что это готовый проект, который входит в состав Visual Studio.

Предупреждение 1 Элемент «packages» не объявлен. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ packages.config 2 2 HR

Предупреждение 2 Проверка (XHTML 1.0 Transitional): Атрибут charset не является допустимым атрибутом элемента meta. C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ Views \ Shared_Layout.cshtml 4 11 HR

Предупреждение 20 Ошибка 6002: для таблицы / представления «HR.dbo.vw_aspnet_Users» не определен первичный ключ. Ключ был выведен, и определение было создано как таблица / представление только для чтения. 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
возможное дублирование элемента nuget 'packages' не объявлено предупреждением
Carsten

Ответы:

345

Взято из этого ответа .

  1. Закройте свой packages.configфайл.
  2. Сложение
  3. Предупреждение исчезло!

Это первый раз, когда я вижу, что игнорирование проблемы заставляет ее исчезнуть ...

Изменить в 2020 году: если вы просматриваете это предупреждение, подумайте об обновлении до PackageReference, если можете

Joel
источник
1
Как заявил @ carsten-könig, схема действительно не проверена (VS будет жаловаться на такую ​​ошибку в любом файле XML, а не только для nuget). Но поскольку файл автоматически сгенерирован, безопасен (и используется только nuget, который отлично обрабатывает XML), вполне нормально игнорировать предупреждения.
Joel
7
Собственно, в VS2013 у меня это не сработало. Несмотря на то, что проект строится нормально, при повторном открытии файла packages.config по-прежнему появляется предупреждение о "волнистости".
JosephDoggie 05
2
@JosephDoggie В любом VS вы получите такое же поведение. Как уже говорилось, вы получите их для любого непроверенного файла XML. Единственное отличие состоит в том, что, поскольку этот файл создается автоматически и должен быть прочитан только nuget, довольно безопасно игнорировать предупреждения.
Joel
В моем случае файл packages.config не был открыт. Открой это. Закрой его. Перестроить !. Это сработало для меня.
Legends
11
это 2018 год. Та же ошибка. То же решение. Goddamnit
kDar
34

Используйте <packages xmlns="urn:packages">вместо<packages>

Темная материя
источник
Я получил ошибку MSB3644, которая не позволила мне построить проект. Каким-то образом, сделав то, что вы говорите, я исправил свою ошибку! Понятия не имею, почему, если вы объясните мне, я был бы признателен, вы бы дважды спасли мне жизнь.
Diego Orellana
1
Как вы узнали, что ему нужны xmlns "urn: packages"? - Заранее спасибо!
Jimmyt1988,
1
Я искал в Интернете и где-то нашел зацепки. Затем я попробовал это, и это сработало.
Dark Matter
Выдает ошибку: VS не удалось найти информацию о схеме для элемента urn: packages
jainashish
1
Это заставляет мой проект (VS2015) не распознавать какой-либо пакет
nuget
12

О, ладно - теперь я понял. Вы можете проигнорировать это - XML ​​для этого просто неверен - элемент packages действительно не объявлен (нет ссылки на схему или что-то еще). Я думаю, что это известная мелкая ошибка, которая ничего не даст, потому что ее будет использовать только NuGet.

См. Также этот аналогичный вопрос .

Карстен
источник
Что ж, это правильно, но в основном потому, что это не может быть неправильным.
Grault
5

Измените узел на и создайте файл packages.xsd в той же папке (и включите его в проект) со следующим содержимым:

<?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>
Том Инглиш
источник