'packages'요소가 선언되지 않았습니다


131

vs 2010과 함께 asp.net mvc 3 프로젝트를 사용할 때 아래와 같은 경고가 많이 있습니다.

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>

답변:


345

이 답변 에서 가져 왔습니다 .

  1. packages.config파일을 닫습니다 .
  2. 짓다
  3. 경고가 사라졌습니다!

문제를 무시하면 실제로 사라지는 것은 처음입니다 ...

2020 년 편집 :이 경고가 표시 되면 가능한 경우 PackageReference로 업그레이드하십시오.


1
@ carsten-könig가 말했듯이 스키마는 실제로 검증되지 않았습니다 (VS는 너겟뿐만 아니라 XML 파일의 이러한 오류에 대해 불평합니다). 그러나 파일이 자동 생성되므로 안전하고 XML을 잘 처리하는 nuget 만 사용하므로 경고를 무시하는 것이 좋습니다.
Joel

7
실제로 VS2013에서는 이것이 효과가 없었습니다. 프로젝트는 정상적으로 빌드되지만, packages.config 파일을 다시 열면 "squiggle"경고가 계속 나타납니다.
JosephDoggie

2
@JosephDoggie 어떤 VS에서도 동일한 동작을 얻을 수 있습니다. 언급 한 바와 같이, 검증되지 않은 XML 파일에 대한 파일을 얻게됩니다. 유일한 차이점은이 파일이 자동으로 생성되고 너겟 만 읽을 수 있기 때문에 경고를 무시하는 것이 안전하다는 것입니다.
Joel

필자의 경우 packages.config 파일이 열리지 않았습니다. 열어 봐. 닫아. 재건!. 이것은 나를 위해 일했습니다.
Legends

11
2018 년입니다. 같은 버그입니다. 같은 해결책. Goddamnit
kDar

33

사용 <packages xmlns="urn:packages">장소에<packages>


프로젝트를 만들 수없는 오류 MSB3644가 있습니다. 어떻게 든 당신이 말하는 것을 수행함으로써 내 버그가 수정되었습니다! 나는 당신이 나에게 설명 할 수 있다면 왜 내 생명을 두 번 구했을지 모른다.
Diego Orellana

1
xmlns "urn : packages"가 필요하다는 것을 어떻게 알았습니까? -미리 감사드립니다!
Jimmyt1988

1
인터넷에서 검색하고 어딘가에서 단서를 발견했습니다. 그런 다음 이것을 시도하고 작동했습니다.
암흑 물질

VS는 urn : packages 요소에 대한 스키마 정보를 찾을 수 없습니다.
jainashish

1
이것은 내 프로젝트 (VS2015)가 너겟 패키지를 인식하지 못하도록합니다
DanielV

12

오 알았어-이제 알겠다 당신은 이것을 무시할 수 있습니다-이것에 대한 XML은 정확하지 않습니다-패키지 요소가 실제로 선언되지 않았습니다 (스키마에 대한 참조가 없습니다). NuGet만이 이것을 사용하기 때문에이 작업을 수행하지 않는 것으로 알려진 사소한 버그라고 생각합니다.

이 비슷한 질문 도 참조하십시오 .


글쎄요, 맞습니다. 그러나 부정확 한 방법이 없기 때문에 주로 그렇습니다.
Grault

5

노드를 변경하고 다음 내용으로 동일한 폴더에 패키지 (.works.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.