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 파일을 삭제 한 다음 같은 이름의 빈 파일을 다시 만들어야했습니다. 돌아가서 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를보다 신속하게 만들기 위해 일부 최적화 기능을 도입 했으므로 결과적으로 코드 생성기를 트리거하는 사례 수가 줄었습니다. 작동하는 데 사용 된 다음 시나리오는 더 이상 작동하지 않습니다.
- aspx 또는 ascx 파일 삭제-이 경우 더 이상 확인하지 않습니다
- 모든 내용을 잘라내어 aspx 또는 ascx 파일로 다시 붙여 넣기-더 이상 작동하지 않고 참조가 변경되지 않음
- 웹 응용 프로그램으로 변환-더 이상 옵션을 사용할 수 없음
- 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"로 바꾸십시오. 저장하고 짓고 당신은 잘 가야합니다.
내가 아는 유일한 방법은 디자이너 파일을 삭제하고 웹 응용 프로그램으로 변환하는 것입니다. 그러나 이렇게하면 일반적으로 처음에 자동 재생성되지 않은 이유, 일반적으로 페이지 헤드에 선언되지 않은 제어 참조에 대한 오류와 함께 팝업됩니다.
웹 응용 프로그램으로 변환이 작동하지 않았습니다.
designer.cs를 삭제하고 빈 designer.cs를 붙여 넣는 것도 작동하지 않았습니다.
그러나 그렇습니다.
- 모두 선택 (Default.aspx)
- 절단
- Default.aspx 저장
- 풀
- Default.aspx 저장
끝난. 새로운 designer.cs가 생성되었습니다. :)
복사 / 붙여 넣기로 인해이 문제가 발생 하는 경우가 종종 있었습니다. 대부분의 경우 서버 컨트롤의 ID를 편집하여 해결할 수 있습니다 (문자를 추가 한 다음 삭제하면됩니다).
또한 Repeater와 같은 항목 내부의 컨트롤은 디자이너 파일에 표시되지 않습니다.
그렇습니다. 위에 나열된 파일 삭제 마법을 수행해야하는 경우가 있지만 이름 변경 솔루션은 대부분 작동합니다.
내 경험은 위에서 언급 한 것처럼 이 기사 에서처럼하고 싶다면 .
마크 업 파일 (aspx / ascx)에 CodeBehind = "MyPage.aspx.cs"특성이 포함되어 있어야합니다. 그렇지 않으면 작동하지 않습니다. 나는 그것에 대해 블로그에 올렸 습니다 .
코드를 변경하거나 "웹 응용 프로그램으로 변환"과 같은 명령을 실행하지 않고도이 문제를 해결할 수있는 방법을 찾았습니다.
내가 찾은 것은 Visual Studio를 다시 시작하면 종종 문제를 해결하지만 때로는 해결하지 못한다는 것입니다. 이 경우 Visual Studio를 닫은 후 다시 열기 전에 웹 프로젝트의 "obj"디렉토리에있는 모든 컨텐츠 를 삭제 하면 항상 효과가 있습니다.
(다시 시작하면 공간을 추가하고 다시 제거한 다음 저장을 눌러 디자이너 파일을 올바르게 재생성하십시오)
(다음은 VS2005에 대한 경험에서 비롯된 것입니다.)
디버깅하는 동안 ASPX 페이지를 편집하면 코드 숨김이 새 클래스로 업데이트되지 않습니다. 따라서 디버깅을 중지하고 ASPX 페이지를 간단하게 편집 (예 : 단추 등 추가) 한 다음 디자인보기를 클릭 한 다음 단추를 삭제해야합니다. 그런 다음 디자이너 파일을 업데이트해야합니다.
VS2008과 다른 문제가 발생하면 도와 드릴 수 없습니다.
디자인보기에서 화면을 마우스 오른쪽 버튼으로 클릭하고 새로 고침을 클릭하십시오.
일한 또 다른 것은-
- 파일 시스템에서 디자이너 파일을 수동으로 삭제 한 다음 작성하십시오.
- 프로젝트 파일을 편집 하십시오.
- 디자이너
예 를 포함하는 코드 추가 :<Compile Include="<Path>\FileName.ascx.designer.cs"> <DependentUpon>FileName.ascx</DependentUpon> </Compile>
- 프로젝트 새로 고침
- 디자인 / 뷰 모드에서 as (c / p) x 파일을 열고 저장합니다.
- 디자이너 파일을 확인하십시오. 코드가있을 것입니다.
VS2013 이상을 사용하는 경우 "CodeFile"이 아닌 "CodeBehind"속성으로 참조되는 코드가 있는지 확인한 후 아래 단계를 수행하십시오.
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="yourControl.ascx.cs" Inherits="yourControl.yourControl" %>
- 빈 디자이너 페이지를 작성하십시오 (또는 "yourControl.ascx.designer.cs"가 있으면 지우십시오).
- ascx (또는 aspx)에서 모든 코드를 복사하고 삭제 한 다음 저장하십시오. 다시 붙여 넣은 다음 저장하십시오.
- 이제 디자이너 파일을 채워야합니다.
- 디자이너 파일에서 모두 선택하고 파일의 모든 내용을 삭제하고 비워두고 저장하십시오.
- ASPX / ASCX 파일에서 모두 선택하고 모든 것을 잘라낸 후 다시 붙여 넣기
- 디자이너 파일은 코드를 재생성해야합니다
여기 내가 경험했던 와트입니다. 솔루션 탐색기에서 웹 사이트 폴더를 마우스 오른쪽 버튼으로 클릭하고 디자이너 파일이 생성되는 모든 aspx 파일에 대해 웹 응용 프로그램으로 변환을 선택하십시오.
Sameer
여기에 긴 답변 목록을 추가하려면 VS2010 (SP1)에서 .aspx 파일 로이 문제를 겪었습니다. 나는 과거에 작동했던 표준 ASP 컨트롤을 추가하고 제거하려고 시도했지만 결국 디자이너 파일을 다시 생성하기 위해 기존 컨트롤에서 runat = server 행 중 하나를 제거 하고 저장해야했습니다.
저는 수년 동안 Visual Studio 2008에서 일하면서 같은 문제를 겪었습니다. 그리고 저는 여러분 모두가 확신하는 것처럼 StackOverflow와 수십 개의 블로그에서 모든 "솔루션"을 시도했습니다. 그리고 때로는 그들이 당신 모두를 만났다고 확신하는 것처럼 그들은 효과가 있고 때로는 그렇지 않습니다. 그리고 분명히 VS2010과 VS2012에서 여전히 문제입니다.
마지막으로 몇 달 전에 충분하다고 판단하고 몇 주에 걸쳐 .designer 파일을 생성하는 "Redesigner"라는 도구를 만들었습니다. BSD 라이센스에 따라 오픈 소스 이며 SourceForge에서 소스 코드를 사용할 수 있습니다. 무료, 도용, 무료로 원하는 것을 자유롭게 할 수 있습니다. 또한 Visual Studio가 자주 수행하지 못하는 작업을 수행하여 .designer 파일을 빠르고 안정적으로 생성합니다.
.aspx 및 .ascx 파일을 구문 분석하고 필요한 모든 반사 마법을 수행하며 올바른 .designer 파일을 추출하는 독립 실행 형 명령 줄 도구입니다. 기존 코드에 의존하지 않기 위해 모든 파싱 및 반영 자체를 수행합니다. .NET 3.5에 대해 C #으로 작성되었지만 형식 선언 이외의 다른 용도로도 System.Web을 사용하지 않으려 고 Visual Studio를 전혀 사용하거나 의존하지 않습니다 .
Redesigner는 새로운 .designer 파일을 생성 할 수 있습니다. --verbose 옵션을 제공하므로 문제가 발생했을 때 "System.Exception 예외가 발생했습니다."보다 훨씬 더 나은 오류 메시지가 표시됩니다. 또한 기존의 .designer 파일이 손상되었을 때 (제어 누락, 잘못된 속성 선언, Visual Studio에서 읽을 수없는 경우 또는 평범하지 않음)를 알려주는 --verify 옵션이 있습니다.
우리는 지난 달 더 나은 부분을 위해 잼에서 벗어나기 위해 직장에서 그것을 사용 해 왔으며 Redesigner는 여전히 베타 버전이지만 대중과 공유 할 가치가있을 정도로 멀어졌습니다. 곧 Visual Studio 플러그인을 만들고자하므로 마우스 오른쪽 버튼을 클릭하여 디자이너 파일을 항상 원했던대로 확인하거나 재생성 할 수 있습니다. 그러나 그 동안 명령 줄 사용법은 매우 쉽고 많은 두통을 덜어 줄 것입니다.
어쨌든 지금 Redesigner 사본을 다운로드하여 머리카락을 뽑으십시오 . 항상 필요한 것은 아니지만 그렇게하면 기뻐할 것입니다!
https://sourceforge.net/projects/redesigner/
TL; DR; ASPX 페이지 지시문
의 Inherits
속성을 편집하고 @Page
저장을 누르십시오. 디자이너 파일을 다시 생성해야합니다.
Inherits
= <namespace>. <class_name> 및 CodeBehind
= <class_name> .aspx.cs 인지 확인하십시오 .
VS 2010 및 TFS를 사용하여 Sharepoint 2010 프로젝트 에서이 작업을 수행하려고 시도했지만 위의 솔루션 중 어느 것도 효과가 없었습니다. VS 2010에서 TFS를 사용할 때 기본적으로 "웹 응용 프로그램으로 변환" 옵션 이 .ASPX 파일의 오른쪽 클릭 메뉴에 없습니다.
이 답변은 마침내 도움이되었습니다 . 내 수업은 다음과 같습니다.
namespace MyProjects.Finance.Pages
{
public partial class FinanceSubmission : WebPartPage
{
protected void Page_Load(object sender, EventArgs e)
{
}
// more code
}
}
그리고 내 @Page
지시는 (명확성을 위해 여기서 줄 바꿈)입니다.
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="FinanceSubmission.aspx.cs"
Inherits="MyProjects.Finance.Pages.FinanceSubmission"
MasterPageFile="~masterurl/default.master" %>
먼저 Inherits
를 MyProjects.Finance.Pages 로 변경하고 저장을 누른 다음 다시 MyProjects.Finance.Pages.FinanceSubmission으로 변경하고 저장을 다시 누르십시오. 그리고 왈라! 디자이너 페이지가 재생성되었습니다!
누군가 TFS를 사용하는 데 도움이되기를 바랍니다.
Visual Studio 내에서 :
1) aspx.designer.cs 파일을 제거하십시오
2) aspx 파일을 마우스 오른쪽 단추로 클릭하고 "웹 응용 프로그램으로 변환"을 선택하십시오. 그러면 aspx.designer.cs가 최신으로 추가됩니다.
오류가 발생하면 :
"디자이너 파일 생성 실패 : 방법 또는 작업이 구현되지 않았습니다."
Visual Studio를 닫은 다음 프로젝트를 다시 열고 2 단계를 다시 수행하십시오.
Visual Studio에서 aspx.designer.cs를 생성하는 방법?
designer.cs 파일을 삭제 한 다음 .aspx 파일을 마우스 오른쪽 단추로 클릭하고 "웹 응용 프로그램으로 변환"을 선택하십시오. 태그가 제대로 구성되지 않은 등의 컨트롤 선언에 문제가있는 경우 오류 메시지가 표시되며 Visual Studio에서 디자이너 파일을 성공적으로 다시 생성하기 전에 잘못된 태그를 수정해야합니다.
필자의 경우,이 시점에서 문제는 runat = "server"속성을 가진 양식 태그 안에 있지 않은 버튼 컨트롤을 선언했다는 것을 발견했습니다.
이것은 IDE의 버그입니다. VS 2003 이후로 보았습니다. 솔루션은 간단합니다.
파일을 저장하십시오. IDE를 완전히 종료하십시오 (프로세스가 중지되었는지 확인하십시오 (태스크 mgr)).
솔루션을 다시 열고 마크 업을 더럽 히고 저장하십시오. 결정된.
나는 두 가지 문제가 있었다 ... 구식 AJAXControlkit-오래된 dll을 삭제하고, 도구 상자에서 오래된 컨트롤을 제거하고, 새 버전을 다운로드하고, 도구 상자를로드하고, 페이지에 새 컨트롤을 끌어다 놓았습니다 ( http://www.experts-exchange.com 참조) /Programming/Languages/.NET/Visual_Studio_.NET_2005/Q_24591597.html )
또한 레이블 컨트롤에서 철자가 잘못되었습니다 ( 'cssclass'대신 'class'를 사용했습니다).
고마워
당신이 나와 같고 더 오래된 프로젝트에 오래된 .ASPX 파일을 추가하는 경우. 아마도 페이지에 사용 된 일부 컨트롤을 잊어 버릴 것입니다.
그렇다면 먼저 설치하려는 파일이 여러 개인 경우 한 번에 하나씩 수정하십시오.
컴파일 할 때 생성 된 오류를 수정하십시오. 모든 파일에서 동일한 오류 일 수 있습니다.
다음으로 Designer 파일이 있으면 삽입 된 모든 Designer 파일을 삭제하십시오. 다음으로 컴파일 할 때 디자이너 파일 이외의 다른 오류가 없는지 확인하십시오.
마지막으로 웹 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 웹 응용 프로그램으로 변환을 클릭하십시오. 필요한 디자이너 파일이 삽입됩니다.
다음은 문제를 해결하기위한 최선의 단계입니다.
아무도 언급하지 않은 한 가지는 페이지 를 방문하는 것 입니다. 존재하지 않는 사용자 정의 컨트롤 (여러 가지 이유로)이 포함되어 있기 때문에 디자이너 파일 재생이 중지되었으며 여기에 제안 된 사항이 없습니다. 어떤 이유로 든 Visual Studio에서 오류가 발생하지 않았습니다. 물론 클라이언트 측 컨트롤은 재생성되지 않았기 때문에 클라이언트 측 컨트롤이 존재하지 않는다는 사실에 대해 불평했습니다.
실제로 페이지를 방문하여 ASP.Net에서 오류를 알려야했습니다.
네임 스페이스를 업데이트하고 디자이너 파일에서 네임 스페이스를 업데이트하지 않은 경우에도 발생할 수 있습니다. 수정 : 디자이너 파일에서도 네임 스페이스를 업데이트하십시오.
나를 위해 일한 해결책은 다음과 같습니다.
방금 페이지를 복사하여 같은 부분에 붙여 넣은 다음 첫 페이지의 이름을 바꾸고 복사 한 페이지의 이름을 원본 페이지로 바꿨습니다. 이제 컨트롤에 액세스 할 수 있습니다.
솔루션 탐색기에서 마우스 오른쪽 버튼을 클릭하고 웹 응용 프로그램으로 변환을 선택하십시오. 모든 디자이너 파일을 다시 생성합니다.
designer.cs를 닫습니다.
aspx 파일을 디자인보기로 변경하십시오.
오른쪽 클릭 –> 새로 고침.
저장
'Programming' 카테고리의 다른 글
jQuery가 아닌 '$ (document) .ready ()'는 무엇입니까? (0) | 2020.02.23 |
---|---|
웹 브라우저에서 .otf 글꼴 사용 (0) | 2020.02.23 |
문자열의 UPDATE 및 REPLACE 부분 (0) | 2020.02.23 |
Graphviz : .dot에서 그래프로 이동하는 방법? (0) | 2020.02.23 |
Mac OS X에 Java 7을 설치했지만 터미널에서 여전히 버전 6을 사용하고 있습니다. (0) | 2020.02.23 |