Элемент '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, если можете


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>

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.