ไม่ได้ประกาศองค์ประกอบ "แพ็คเกจ"


132

เมื่อใช้โครงการ asp.net mvc 3 กับ vs 2010 ฉันมีคำเตือนมากมายเหมือนคำเตือนด้านล่าง:

ฉันสงสัยว่าฉันทำอะไรผิดพลาดและฉันจำเป็นต้องเปลี่ยนแปลงอะไรบางอย่างเพราะนี่เป็นโครงการนอกกรอบที่มาใน Visual Studio

คำเตือน 1 ไม่ได้ประกาศองค์ประกอบ 'แพ็คเกจ' C: \ Users \ LUIS.SIMBIOS \ Documents \ Visual Studio 2010 \ Projects \ SlnHR \ HR \ package.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
อาจซ้ำกันขององค์ประกอบ 'แพ็คเกจ'
Carsten

คำตอบ:


345

นำมาจากคำตอบนี้

  1. ปิดpackages.configไฟล์ของคุณ
  2. สร้าง
  3. คำเตือนหายไป!

นี่เป็นครั้งแรกที่ฉันเห็นการเพิกเฉยต่อปัญหาทำให้มันหายไป ...

แก้ไขในปี 2020: หากคุณกำลังดูคำเตือนนี้ให้พิจารณาอัปเกรดเป็นPackageReferenceหากทำได้


1
ตามที่ @ carsten-königระบุไว้สคีมานั้นไม่ได้รับการตรวจสอบอย่างแท้จริง (VS จะบ่นเกี่ยวกับข้อผิดพลาดดังกล่าวในไฟล์ XML ใด ๆ ไม่ใช่เฉพาะสำหรับนักเก็ตเท่านั้น) แต่เนื่องจากไฟล์ถูกสร้างขึ้นโดยอัตโนมัติจึงปลอดภัย (และใช้โดย nuget เท่านั้นซึ่งจัดการกับ XML ได้ดี) จึงเป็นการดีที่จะเพิกเฉยต่อคำเตือน
Joel

7
จริงๆแล้วใน VS2013 สิ่งนี้ไม่ได้ผลสำหรับฉัน แม้ว่าโปรเจ็กต์จะทำงานได้ดี แต่คำเตือน "squiggle" ยังคงอยู่เมื่อเปิดไฟล์ package.config อีกครั้ง
JosephDoggie

2
@JosephDoggie ใน VS ใด ๆ คุณจะได้รับพฤติกรรมเดียวกัน ตามที่ระบุไว้คุณจะได้รับสิ่งเหล่านี้สำหรับไฟล์ XML ที่ไม่ผ่านการตรวจสอบ ข้อแตกต่างเพียงอย่างเดียวคือเนื่องจากไฟล์นี้สร้างขึ้นโดยอัตโนมัติและควรจะอ่านโดย nuget เท่านั้นจึงค่อนข้างปลอดภัยที่จะเพิกเฉยต่อคำเตือน
Joel

ในกรณีของฉันไฟล์ package.config ไม่เปิด เปิด. ปิดมัน สร้าง !. สิ่งนี้ได้ผลสำหรับฉัน
Legends

11
มันคือปี 2018 บั๊กเดียวกัน ทางออกเดียวกัน Goddamnit
kDar

34

ใช้<packages xmlns="urn:packages">แทน<packages>


ฉันได้รับข้อผิดพลาด MSB3644 ที่ไม่ยอมให้ฉันสร้างโครงการ ด้วยการทำในสิ่งที่คุณบอกว่าฉันได้รับการแก้ไขแล้ว! ฉันไม่รู้ว่าทำไมถ้าคุณอธิบายให้ฉันฟังได้ฉันจะขอบคุณคุณจะช่วยชีวิตฉันได้สองครั้ง
Diego Orellana

1
คุณรู้ได้อย่างไรว่ามันต้องการ xmlns "urn: package"? - ขอบคุณล่วงหน้า!
Jimmyt1988

1
ฉันค้นหาในอินเทอร์เน็ตและพบเบาะแสบางอย่าง จากนั้นฉันลองสิ่งนี้และมันใช้งานได้
Dark Matter

มันแสดงข้อผิดพลาดเป็น: VS ไม่พบข้อมูลสคีมาสำหรับโกศองค์ประกอบ: แพ็คเกจ
jainashish

1
สิ่งนี้ทำให้โครงการของฉัน (VS2015) ไม่รู้จักแพ็คเกจ nuget ใด ๆ
DanielV

12

โอเค - ตอนนี้ฉันเข้าใจแล้ว คุณสามารถเพิกเฉยต่อสิ่งนี้ได้ - XML ​​สำหรับสิ่งนี้ไม่ถูกต้อง - ไม่มีการประกาศ package-element (ไม่มีการอ้างอิงถึง schema หรืออะไรก็ตาม) ฉันคิดว่านี่เป็นข้อบกพร่องเล็ก ๆ น้อย ๆ ที่เป็นที่รู้จักซึ่งจะไม่ทำอะไรเลยเพราะมีเพียง NuGet เท่านั้นที่จะใช้สิ่งนี้

ดูคำถามที่คล้ายกันนี้ด้วย


ถูกต้อง แต่ส่วนใหญ่เป็นเพราะไม่มีทางที่จะไม่ถูกต้อง
Grault

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>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.