programing

현재 컨텍스트에 이름이 없습니다.

muds 2023. 6. 15. 22:08
반응형

현재 컨텍스트에 이름이 없습니다.

그래서, 저는 제 노트북과 제 데스크탑 사이에서 이 프로젝트를 진행하고 있습니다.

프로젝트는 노트북에서 작동하지만 업데이트된 소스 코드를 데스크톱에 복사한 후 프로젝트에 500개 이상의 오류가 발생했습니다. 모두...

이름이 현재 컨텍스트에 없습니다.

여기 한 가지 예가 있습니다...

Jobs.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Members/Members.master" AutoEventWireup="true" CodeFile="Jobs.aspx.cs" Inherits="Members_Jobs" %>

<%@ Register Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" TagPrefix="aj" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <asp:UpdatePanel runat="server" ID="upJobs">
        <ContentTemplate>
            <!-- page content goes here -->
        </ContentTemplate>
    </asp:UpdatePanel>
</asp:Content>

Jobs.aspx.cs

public partial class Members_Jobs : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            loadJobs();
            gvItems.Visible = false;
            loadComplexes();
            loadBusinesses();
            loadSubcontractors();
            loadInsurers();

            pnlCallback.Visible = false;
            pnlInsurer.Visible = false;
        }
    }

    // more goes down here
}

여기 designer.cs 파일의 샘플이 있습니다.

namespace stman.Members {


    public partial class Jobs {

        /// <summary>
        /// upJobs control.
        /// </summary>
        /// <remarks>
        /// Auto-generated field.
        /// To modify move field declaration from designer file to code-behind file.
        /// </remarks>
        protected global::System.Web.UI.UpdatePanel upJobs;
    }
}

이 오류는 참조 중인 컨트롤이 일반적으로 존재하지 않거나 이 컨트롤을 참조하는 클래스의 일부가 아님을 의미한다는 것을 알고 있습니다. 하지만 제가 보기에 여기서는 그렇지 않습니다.

누가 통찰력을 좀 제공할 수 있습니까?

VS2012 Screenshot

위의 모든 것을 시도했지만 여전히 프로젝트를 실행하지 못한 초보자인 경우.네임스페이스를 확인합니다.한 프로젝트에서 다른 프로젝트로 코드를 복사하고 프로젝트의 네임스페이스를 변경하는 것을 잊어버린 경우에도 이 오류가 발생합니다.

누군가에게 도움이 되길 바랍니다.

Jobs.aspx

파일입니다 것이물파일니다입적리 ->CodeFile="Jobs.aspx.cs"

-> 페이의처클는래다니 ->Inherits="Members_Jobs"

Jobs.aspx.cs

페이지 이벤트를 관리하는 부분 클래스입니다 ->public partial class Members_Jobs : System.Web.UI.Page

부분 수업의 다른 부분은 ->이어야 합니다.public partial class Members_Jobs이것은 보통 디자이너 파일입니다.

부분 클래스를 가질 필요가 없으며 하나의 클래스에서 모두 컨트롤을 선언할 수 있으며 디자이너 파일이 없습니다.

EDIT 27/09/2013 11:37

만약 당신이 여전히 이것에 문제가 있다면, 저는 Baradwaj가 제안한 대로 하고 디자이너 파일을 삭제하겠습니다.그런 다음 솔루션 탐색기에서 페이지를 마우스 오른쪽 단추로 클릭하면 디자이너 파일을 다시 생성하는 "웹 응용 프로그램으로 변환"과 같은 옵션이 있습니다.

MSDN 웹 사이트에서:

루프, 시도 또는 if 블록에서 변수를 선언한 다음 포함 코드 블록 또는 별도의 코드 블록에서 변수에 액세스하려고 하면 이 오류가 자주 발생합니다.

따라서 블록 외부의 변수를 선언합니다.

"이 프로젝트는 노트북에서 작동하지만 업데이트된 소스 코드를 데스크톱에 복사했습니다."

저는 두 가지 버전의 프로젝트를 만들고 그 사이에 파일을 복사하는 비슷한 작업을 했습니다.그것은 저에게 같은 오류를 주었습니다.

제 해결책은 프로젝트 파일로 이동하는 것이었습니다. 거기서 저는 다음과 같이 보이는 것을 발견했습니다.

<Compile Include="App_Code\Common\Pair.cs" />
<Compile Include="App_Code\Common\QueryCommand.cs" />

다음과 같이 보입니다.

<Content Include="App_Code\Common\Pair.cs">
  <SubType>Code</SubType>
</Content>
<Content Include="App_Code\Common\QueryCommand.cs">
  <SubType>Code</SubType>
</Content>

제가 그것들을 다시 바꾸었을 때, Visual Studio는 다시 행복했습니다.

dll 파일을 참조할 때 메인 프로젝트에서 이 문제가 발생했습니다.

문제는 dll을 참조한 메인 프로젝트가 dll보다 낮은 프레임워크 버전을 대상으로 한다는 것이었습니다.

그래서 나의 타겟 프레임워크 버전(오른쪽 클릭 프로젝트 -> Application -> Target framework)을 올렸는데 오류가 사라졌습니다.

저는 메타 태그에서 비슷한 문제를 발견했습니다.designer.cs컨트롤은 다음과 같이 정의되었습니다.

protected global::System.Web.UI.HtmlControl.HtmlGenericControl metatag;

는 그 를 는정의다옮했습니다겨야로음으로 했습니다..aspx.cs파일을 작성하고 다음과 같이 정의합니다.

protected global::System.Web.UI.HtmlControl.HtmlMeta metatag;

문제에 했는데, 이 파일 안에 있다는 입니다. 문제는 양식이 폴더 안에 있고 파일이 있다는 것입니다..aspx.designer.cs해당 디렉터리를 참조하는 네임스페이스가 있어서 여러 구성 요소에 오류가 발생했습니다.

El nombre no existe en el contexto actual

이 경우 가능한 해결책은 의 네임스페이스 라인을 떠나는 것입니다.Members_Jobs.aspx.designer.cs전체적으로, 즉이 파일을 합니다.

namespace stman.Members {

이를 위하여

namespace stman {

그것이 제가 문제를 해결하는 데 도움이 되었습니다.

도움이 되길 바랍니다.

나는 내 페이지 지시에 따라 가져오기 지시를 사용하여 내 것을 해결했습니다.또한 페이지 디렉티브의 상속 특성에 네임스페이스를 추가할 수도 있습니다.

기본 네임스페이스는 "stman"입니다. " 원구성", "시도:": <%@ Page Title="" Language="C#" MasterPageFile="~/Members/Members.master" AutoEventWireup="true" CodeFile="Jobs.aspx.cs" Inherits="stman.Members.Members_Jobs" %> <%@ Import Namespace="stman.Members"%>

또한 aspx.cs 과 aspx 사이에 전달하고자 하는 데이터를 네임스페이스 내의 정적 클래스에 넣었습니다.해당 정적 클래스는 이름 공간에서 데이터를 이동하는 데 사용할 수 있었으며 더 이상 "Not in context" 오류가 없습니다.

저도 비슷한 문제에 직면했습니다.그 이유는 디자이너 페이지가 아닌 .aspx 페이지에서 변경을 했기 때문에 언급된 오류가 발생했습니다.디자이너 페이지에 레퍼런스가 생성되었을 때 솔루션을 구축할 수 있었습니다.

실수로 마스터 페이지의 상단 지시문 앞에 텍스트를 추가했을 때 프로젝트에 포함된 모든 페이지의 모든 컨트롤이 현재 컨텍스트에 존재하지 않습니다.포럼과 자체 분석에 많은 시간을 할애한 후 실수로 추가된 텍스트를 찾아 제거했지만 문제가 해결되지 않았습니다.그런 다음 VS가 페이지를 로드하고 인식할 수 있도록 관련 페이지를 열려면 각 오류를 클릭해야 했습니다. VS에 코드가 로드되면 VS가 인식했기 때문에 해당 페이지의 오류가 사라지기 시작했습니다. 각 오류를 클릭하십시오.VS 에디터에 각 페이지를 로드하는 것은 저에게 도움이 되었고 나중에 VS에서 자동으로 인식되기 때문에 한 번만 하면 됩니다.저는 그것이 비주얼 스튜디오 글리치라고 말할 수 있습니다.

우리의 경우, Dominik Litschauer가 언급한 대로 .csproj projet 파일에서 ToolsVersion을 14.0에서 15.0으로 변경하는 것 외에도 Jenkins 작업에 의해 컴파일이 트리거되고 있기 때문에 MSBuild의 업데이트된 버전을 설치해야 했습니다.Visual Studio 2019용 빌드 도구를 설치한 후 MsBuild 버전 16.0과 모든 새로운 C# 기능이 컴파일되었습니다.

이 문제가 발생하여 디버깅에 사용된 두 개의 파일이 동일한 CodeFile 및 Inherit 값을 공유하고 있다는 것을 알게 되었습니다.그것들을 고유한 것으로 변경한 것이 제 문제를 해결했습니다.

저도 같은 문제가 있었는데, myform.aspx.cs 의 네임스페이스 끝에 ".forms"를 추가했을 때 해결되었습니다. 다음과 같습니다.
네임스페이스 ProgramName입니다.형태

이러한 상황에서 첫 번째 단계는 노력하는 것입니다.build -> clean solution

때로는 VS가 자체 프로젝트 출력과 혼동하기도 합니다.

클린 솔루션은 VS가 이전에 구축한 코드를 제거합니다.

이러한 폴더의 출력 파일이 아니라 bin/obj 디렉터리 자체를 제거합니다.

제 경우, 어떻게든 제 메인 프로젝트의 *.csproj 파일이 종속된 보조 프로젝트에 대한 참조를 잃어버렸습니다. 아마도 Visual Studio 2022(VS 2017)의 가져오기 단계에서 발생한 것 같습니다.*.csproj 파일의 백업 복사본을 확인했는데 전체 태그가 누락되었습니다.백업에서 수동으로 복사했더니 오류가 사라졌습니다.

  <ItemGroup>
    <ProjectReference Include="..\projectName\projectName.csproj">
        <Project>{cf9ab6e2-8e15-4915-820d-2d0d8f365cbf}</Project>
        <Name>ProjectName</Name>
    </ProjectReference>     
  </ItemGroup>

저 또한 같은 문제에 직면했고 프로젝트는 많은 오류를 보였습니다.동료로부터 문제를 일으키는 dll을 복사하여 다른 폴더에 복사한 다음 프로젝트에서 해당 dll 파일을 삭제하고 새 위치에서 참조를 다시 추가하면 문제가 해결됩니다.

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

반응형