[asp.net] Visual Studio에서 aspx / ascx 파일의 .designer 파일을 어떻게 재생성합니까?

때때로 페이지를 편집하거나 제어 할 때 .designer 파일이 페이지에 추가 한 새로운 제어로 업데이트되지 않을 수 있습니다. 이 문제의 원인을 잘 모르겠지만 Visual Studio에서 .designer 파일을 다시 생성하도록하는 방법이 있는지 궁금합니다. Visual Studio 2008을 사용하고 있습니다.

편집 : 나는 이미 시도한 것을 주목해야합니다.

  • 모든 파일 닫기 및 다시 열기 & Visual Studio
  • 페이지에서 runat = “server”컨트롤 변경
  • 페이지 지시문 삭제 및 다시 추가


답변

.aspx 파일을 열고 디자인보기와 html보기를 전환했다가 다시 전환하면 VS에서 컨트롤을 확인하고 디자이너 파일에없는 항목을 추가하라는 메시지가 표시됩니다.

VS2013-15에는 프로젝트 메뉴 아래 에 웹 응용 프로그램 으로 변환 명령이 있습니다. VS2013 이전에는이 ​​옵션을 as (c / p) x 파일에 대한 마우스 오른쪽 버튼 클릭 상황에 맞는 메뉴에서 사용할 수있었습니다. 이 작업을 마치면 * .Designer.cs 파일을 사용할 수 있으며 디자인 HTML 내의 컨트롤을 컨트롤에 사용할 수 있습니다.

추신 : 디버깅 할 때 모든 것이 “재 컴파일되지”않기 때문에 디버그 모드에서 수행하면 안됩니다.

일부 사람들은 .designer.cs 파일을 삭제 (.designer.cs 파일의 백업 복사본을 만든 후)하여 성공을보고했습니다. 같은 이름으로 빈 파일을 다시 만드십시오.

designer.cs 파일을 가장 잘 재생하는 방법에 대한 팁을 추가하는이 답변에 대한 많은 의견이 있습니다.


답변

글쎄, 나는 그것이 마음에 들지 않지만 작동하는 솔루션을 찾았습니다. .designer.cs 파일을 삭제 한 다음 같은 이름의 빈 파일을 다시 만들어야했습니다. 돌아가서 aspx 파일을 다시 저장하면 디자이너 파일이 다시 생성되었습니다.

교활한!


답변

매번 작동하는 다음 방법을 사용합니다.

  • aspx / ascx 파일의 편집기에서 모든 전면 코드 (html 마크 업 등)를 선택하십시오.
  • 절단.
  • 저장.
  • 풀.
  • 저장.

다시 컴파일하십시오.


답변

나는 최근에 같은 문제가 있음을 보았다. Visual Studio 2010은 디자이너 파일 업데이트를 거부했습니다.

VS는 CodeBehind (DLL) 대신 CodeFile (페이지 부족)을 사용하는 페이지의 디자이너 파일을 수정하지 않습니다. VS를 닫거나 프로젝트를 다시로드하거나 컨트롤을 다시 만들거나 파일을 수정하는 횟수에 관계없이 마찬가지입니다. VS가 디자이너를 재생성하도록 요구하는 것은 없습니다. 마치 CodeFile 페이지의 디자이너 파일을 만들지 않지만 거기에 있어야하는 것처럼 보입니다.

CodeBehind로 변경하고 페이지를 저장했습니다. 디자이너 파일이 즉시 업데이트되었습니다. 그런 다음 방금 다시 변경했는데 모든 것이 여전히 황금색이었습니다. VS 2010 / .NET 4.0에서는 VS 2008이 기본적으로이 문제를 겪지 않았으므로이 동작은 새로운 것으로 보입니다.

이 부분입니다.

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="YourPage.aspx.vb" Inherits="YourPageClass" %>

CodeFile을 CodeBehind로 변경하고 저장 한 다음 되돌립니다.


답변

또 다른 가능성이있을 수 있습니다. Visual Studio에서 디자이너를 다시 생성하지 못하게하는 .aspx 파일에 오류가있을 수 있습니다.

디자인보기로 전환하면 컨트롤을 렌더링 할 수없는 것으로 표시됩니다. 컨트롤 수정 (내 경우에는 속성에서 추가 인용)과 재 컴파일은 디자이너를 재생성해야합니다.


답변

Visual Studio 2013 및 2012를 실행하는 경우 여기에있는 대부분의 솔루션이 작동하지 않습니다. Microsoft는 IDE를보다 신속하게 만들기 위해 일부 최적화 기능을 도입하여 코드 생성기를 트리거하는 사례 수를 줄였습니다. 작동하는 데 사용 된 다음 시나리오는 더 이상 작동하지 않습니다.

  1. aspx 또는 ascx 파일 삭제-이 경우 더 이상 확인하지 않습니다
  2. 모든 내용을 잘라내어 aspx 또는 ascx 파일로 다시 붙여 넣기-더 이상 작동하지 않고 참조가 변경되지 않음
  3. 웹 응용 프로그램으로 변환-더 이상 옵션을 사용할 수 없음
  4. aspx / ascx 파일의 내용을 임의로 변경하는 경우 더 이상 작동하지 않습니다 (2 참조).

해결책은 놀랍도록 간단하지만 약간 성가시다. 코드 생성기를 트리거하려면 designer.aspx.cs를 생성해야하는 항목을 변경하십시오. CSS 스타일과 같이 코드에 영향을주지 않는 내용을 변경하거나 텍스트를 추가해도 코드 생성기가 트리거되지 않습니다. 참조 된 컨트롤을 변경해야합니다. 방법은 다음과 같습니다.

ascx 또는 aspx에서 컨트롤의 ID를 변경하십시오.

<asp:HyperLink ID="MyLink" runat="server" NavigateUrl="~/Default.aspx" Text="Home" />

<asp:HyperLink ID="theLINK" runat="server" NavigateUrl="~/Default.aspx" CssClass="tab" Text="Home" />

ascx.cs 또는 aspx.cs로 이동하여 “MyLink”에 대한 모든 참조의 이름을 “theLINK”로 바꾸십시오. 저장하고 짓고 당신은 잘 가야합니다.


답변

내가 아는 유일한 방법은 디자이너 파일을 삭제하고 웹 응용 프로그램으로 변환하는 것입니다. 그러나 이렇게하면 일반적으로 처음에 자동 재생성되지 않은 이유, 일반적으로 페이지 헤드에 선언되지 않은 제어 참조에 대한 오류와 함께 팝업됩니다.