Елемент "пакети" не декларується


131

При використанні проекту asp.net mvc 3 в порівнянні з 2010 роком я маю багато попереджень, як наведені нижче:

Мені цікаво, чи я щось зробив не так, і мені потрібно щось змінити, адже це проект поза коробкою, який надходить у Visual Studio.

Попередження 1 Елемент "пакети" не декларується. C: \ Користувачі \ LUIS.SIMBIOS \ Документи \ Visual Studio 2010 \ Проекти \ SlnHR \ HR \ пакети.config 2 2 HR

Попередження 2 Перевірка (XHTML 1.0 Перехідний): Атрибут 'charset' не є дійсним атрибутом елемента 'meta'. C: \ Користувачі \ LUIS.SIMBIOS \ Документи \ Visual Studio 2010 \ Проекти \ SlnHR \ HR \ Перегляди \ Shared_Layout.cshtml 4 11 HR

Попередження 20 Помилка 6002: У таблиці / перегляді 'HR.dbo.vw_aspnet_Users' не визначено первинний ключ. Ключ був зроблений і визначення було створено у вигляді таблиці / перегляду, доступного лише для читання. C: \ Користувачі \ LUIS.SIMBIOS \ Документи \ Visual Studio 2010 \ Проекти \ SlnHR \ HRRazorForms \ Моделі \ 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>

пакети.конфіг

<?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>

Відповіді:


345

Взяте з цієї відповіді .

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

Це перший раз, коли я бачу, що ігнорування проблеми насправді змушує її піти ...

Редагувати в 2020 році: якщо ви переглядаєте це попередження, подумайте про оновлення до PackageReference, якщо можете


1
Як зазначає @ carsten-könig, схема дійсно не підтверджена (VS буде скаржитися на таку помилку в будь-якому XML-файлі, не тільки для nuget). Але оскільки файл, створений автоматично, є безпечним (і використовується лише nuget - який обробляє XML просто чудово), цілком чудово ігнорувати попередження.
Джоель

7
Насправді, у VS2013 це не працювало для мене. Хоча проект будує нормально, попередження про "біг" все ще існує, коли файл пакунків.config повторно відкриється.
ДжозефДоггі

2
@JosephDoggie У будь-якому VS ви отримаєте таку саму поведінку. Як зазначено, ви отримаєте їх для будь-якого не підтвердженого XML-файлу. Єдина відмінність полягає в тому, що оскільки цей файл генерується автоматично і його слід читати лише на нуті, досить ігнорувати попередження цілком безпечно.
Джоель

У моєму випадку файл package.config не був відкритий. Відкрий це. Закрий це. Перебудуйте !. Це працювало для мене.
Легенди

11
це 2018. Та сама помилка. Це ж рішення. Goddamnit
kDar

33

Використовуйте <packages xmlns="urn:packages">на місці<packages>


Я отримав помилку MSB3644, яка не дозволила мені створити проект. Якось, виконуючи те, що ти кажеш, я усунув свою помилку! Я поняття не маю, чому, якби ви могли мені пояснити, я оцінив би, ви б врятували мені життя двічі.
Дієго Ореллана

1
Як ви дізналися, що йому потрібні xmlns "urn: пакети"? - Спасибі заздалегідь!
Jimmyt1988

1
Я шукав в Інтернеті і десь знайшов підказки. Тоді я спробував це, і це спрацювало.
Темна матерія

Він видає помилку, оскільки: VS не знайшов інформацію про схему для елемента urn: пакети
jainashish

1
Це змушує мій проект (VS2015) не розпізнавати жоден нюґет-пакет
DanielV

12

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

Дивіться також подібне запитання .


Ну, це правильно, але головним чином тому, що немає способу, щоб це було неправильно.
Граул

5

Змініть вузол і створіть файл, package.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.