programing

'구성 관리자' 이름이 현재 컨텍스트에 없습니다.

telecom 2023. 6. 4. 10:17
반응형

'구성 관리자' 이름이 현재 컨텍스트에 없습니다.

는 에액스려합니다에 하려고 합니다.connectionStrings구성 파일에서.코드는 ASP.NET + C#입니다.저는 습니다했가를 했습니다.System.Configuration참조 및 사용 시 언급됩니다.하지만 여전히 그것은 집회를 받아들이지 않았습니다.

VSTS 2008을 사용하고 있습니다.이유가 뭔지 아세요?

또 다른 이상한 점은 어셈블리 이름이 "System.configuration"으로 표시된다는 것입니다. 소문자 c는 다른 시스템 어셈블리에 대해 이름이 표시되는 방식이 아닙니다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;

namespace Utility
{
    public class CommonVariables
    {
        public static String ConnectionString
        {
            get { return ConfigurationManager.ConnectionStrings["EmployeeEntities"].ConnectionString; }
        }  
    }  
}

구성:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <connectionStrings>
    <add name="qbankEntities" connectionString="metadata=res://*/qbankModel.csdl|res://*/qbankModel.ssdl|res://*/qbankModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>
</configuration>

네임스페이스만 사용할 필요는 없습니다. System.Configuration또한 참조를 어셈블리에 추가해야 합니다. System.Configuration.dll,타고

  1. 참조/의존성을 마우스 오른쪽 버튼으로 클릭합니다.
  2. 참조 추가 선택
  3. 를 합니다.System.Configuration.

이것은 확실히 효과가 있을 것입니다.또한 경도에우에 도.NameValueCollection다음과 같이 적어야 합니다.

using System.Collections.Specialized;

프로젝트에서 마우스 오른쪽 버튼으로 클릭하고 참조 추가...를 클릭한 다음 .NET 탭에서System.Configuration구성 요소 이름을 선택하고 확인을 클릭합니다.

using System.Configuration컴파일러/IntelliSense에 사용자가 사용하는 클래스를 해당 네임스페이스에서 검색하도록 지시합니다. 이름을 해야 할 입니다.System.Configuration.ConfigurationManager 네임스페이스.그러나 참조를 추가하지 않으면 해당 네임스페이스/클래스를 찾을 수 없습니다.

네임스페이스가 수 DLL 은 "" "" "" "" "" " "" " " " " ""System.Configuration.dll " 이적으로가를, "스페수질있습다니스이네임론,▁the있수다▁could▁namespace습"를 가질 수 있습니다.Some.Random.Name명확성/일관성을 위해 일반적으로 동일하지만 예외가 있습니다.

VSTS를 다시 시작한 후에 작동했습니다.링크에서 동일한 문제에 대한 해결책을 제안했습니다.전에 볼 수 있었으면 좋았을 텐데요.:)

추가System.Configuration모든 프로젝트를 참조하면 이 문제를 해결할 수 있습니다.

  1. 에 가다Project->Add Reference

  2. 에서 나는상서에를 합니다.All assemblies왼쪽 목록에 있는 list 탭.

  3. 중앙목에다로스크롤음으서록으로 .System.Configuration상자가 선택되었는지 확인합니다.

  4. ▁the▁ok▁click다,▁access▁be니있▁to습를▁ok'▁apply수▁now▁toll.ConfigurationManager학생들

그냥 설치

Install-Package System.Configuration.ConfigurationManager -Version 4.5.0

그 다음에 사용

using System.Configuration;

제안된 솔루션 중 저에게 적합한 솔루션이 없기 때문에 이 답변을 추가합니다.

  1. 참조 탭을 마우스 오른쪽 버튼으로 클릭하여 참조를 추가합니다.
  2. 어셈블리 탭 클릭
  3. '시스템'을 검색합니다.구성'
  4. 확인을 클릭합니다.
  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
  2. 관리자 NuGet 패키지 선택
  3. 시스템 찾기.배열
  4. 시스템을 선택합니다.배열.마이크로소프트 구성 관리자
  5. 설치하다

이제 할 수 있습니다.

using System.Configuration;

경고를 많이 받는 경우(솔루션의 경우 64!)와 같은

CS0618: '구성 설정'.AppSettings'가 더 이상 사용되지 않습니다. '이 메서드는 더 이상 사용되지 않습니다. 시스템으로 대체되었습니다.구성!시스템.구성.구성 관리자.앱 설정'

이전 프로젝트를 업그레이드하는 경우 다음과 같이 많은 시간을 절약할 수 있습니다.

  1. 더하다System.Configuration참조 섹션을 참조하십시오.
  2. 두 개의 음두가추니다가합를지다를 추가합니다.using의 맨 (각클래스맨있문는장위에의문(ments장▁to▁state각는).cs 파일:

    using System.Configuration; using ConfigurationSettings = System.Configuration.ConfigurationManager;

이 변경에 의해 발생하는 모든 항목

ConfigurationSettings.AppSettings["mySetting"]

이제 더 이상 사용되지 않는 구성 관리자가 아닌 올바른 구성 관리자를 참조하고 모든 CS0618 경고가 즉시 사라집니다.

물론, 이것은 빠른 해킹이라는 것을 명심하세요.장기적으로 코드 리팩터링을 고려해야 합니다.

는 이 더 .configurationmanager does not exist in the current context.

에서 연결 web.config우리는 사용해야 합니다.ConfigurationManager클래스 및 그 방법를 사용하려면 다음을 사용하여 네임스페이스를 추가해야 합니다.System.Configuration;

네임스페이스를 하셨지만, 이때네사사할용만고려하를 할 때,ConfigurationManager클래스를 지정하면 시스템에 "구성 관리자가 현재 컨텍스트에 없습니다." 오류가 표시됩니다.문제를 하려면: 다음과 같이 하십시오.

ConfigurationManager.ConnectionStrings["ConnectionSql"].ConnectionString; 

.NET 어셈블리에 다른 항목이 아닌 참조를 추가한 것이 확실합니까?Visual Studio 참조 대화의 .NET 탭에서 선택했는지 확인하여 참조를 제거한 후 다시 추가해 보겠습니다. 최신 버전은 GAC에서 2.0.0이어야 합니다.

건전성 검사를 위해 새 웹 응용 프로그램 프로젝트를 만들고 Default.aspx 페이지에 대한 코드를 엽니다.Page_Load에 줄을 추가하여 연결 문자열에 액세스합니다.

시스템이 있어야 합니다.기본적으로 구성이 참조로 추가되었습니다.코드 파일의 맨 위에 이미 사용 설명서가 표시되어야 합니다.

파일 뒤에 있는 제 코드는 이제 이렇게 보이고 문제 없이 컴파일됩니다.

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebApplication1
{
  public partial class _Default : System.Web.UI.Page
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      string connString = ConfigurationManager.ConnectionStrings["MyConnectionStringName"].ConnectionString;
    }
  }
}

이렇게 하면 web.config에 "MyConnectionStringName"과 동일한 이름의 연결 문자열이 있다고 가정합니다.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="MyConnectionStringName"
            connectionString="Data Source=.;Initial Catalog=MyDatabase;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

네, 제가 아는 초등학교입니다.하지만 더 좋은 아이디어가 없다면, 가끔은 정말로 간단한 것과 비교해 보는 것이 도움이 될 것입니다.

Visual Studio 2019용

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 NuGet 패키지 관리로 이동합니다.

여기에 이미지 설명 입력

시스템을 검색합니다.시스템을 구성하고 설치합니다.배열.구성 관리자

여기에 이미지 설명 입력

이제 코드에서 구성 관리자가 인식됩니다.

여기에 이미지 설명 입력

이 코드가 라이브러리 프로젝트와 같은 별도의 프로젝트에 있는 경우.system.configuration에 대한 참조를 추가하는 것을 잊지 마십시오.

관련이 없는 다른 프로젝트에 실수로 참조를 추가한 경우에도 이 오류가 발생할 수 있습니다.그것이 당신에게 적용되는지 확인하세요.

이 문제를 해결하려면 솔루션 탐색기로 이동합니다. 참조를 마우스 오른쪽 단추로 클릭하고 참조 추가를 클릭한 다음 .net을 선택하고 시스템을 찾습니다.구성을 클릭한 다음 확인을 클릭합니다.

데이터베이스 web.config에 연결할 구성 관리자 파일을 추가합니다.

NetCore 3.1에서는Microsoft.Extensions.Configuration대신:

    public static async Task Main(string[] args)
    {
        var configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile(path: "appsettings.json", optional: false, reloadOnChange: true)
            .Build();

...

웹 구성(web.config)의 구성 관리자는 더 이상 사용되지 않습니다.https://learn.microsoft.com/en-us/dotnet/api/system.configuration.configurationmanager.appsettings?redirectedfrom=MSDN&view=dotnet-plat-ext-3.1#System_Configuration_ConfigurationManager_AppSettings 을 참조하십시오.

설정 인스턴스 생성

var appSettings = ConfigurationManager.AppSettings;

Entity Framework Core를 사용하는 경우 대체 솔루션은 다음과 같습니다.

  1. 마우스 오른쪽 버튼을 클릭하여 프로젝트를 실행하고 'Nuget 패키지 관리'를 선택합니다.
  2. '찾아보기' 탭에서 'Z'를 검색합니다.엔티티 프레임워크입니다.내선 번호.EFCore'
  3. 패키지를 설치하고 '시스템 사용'을 클릭합니다.구성'이 자동으로 추가됩니다.

언급URL : https://stackoverflow.com/questions/1274852/the-name-configurationmanager-does-not-exist-in-the-current-context

반응형