답변

7

ReSharper를 사용하면 면도칼보기를 마우스 오른쪽 단추로 클릭하고 는 용도 찾기,하지만 당신은 수동으로 통과하고 (당신이 ReSharper에서의 API에 훅하고 자동화 할 수 있습니다하지 않는 한) 모든 뷰에 대한 반복해야 할 것입니다.

과정의 전망에 대한 문제는 그들이 그것을 ~/Views/{Controller}/{Action}~/Views/Shared/{Action}에 해당 뷰를 찾습니다 기본 RazorViewEngine의 경우 뷰 엔진에 정의 된 규칙을 기반으로 런타임에 바인딩 된 것이다. 따라서 뷰, 부분 및 템플릿이 사용되지 않는 디자인이나 컴파일 타임을 말하기는 어렵습니다.

반대 각도에서 허용 할 수 있습니다. 어떤보기가 사용 중인지 찾습니다. 그런 다음이 목록을 프로젝트의 모든보기와 비교하여 결과를 평가하고 (수동으로 ReSharper 찾기 사용으로) 최종적으로 제거하기 전에 실제로 사용되지 않았는지 확인하십시오.

사용중인보기를 찾으려면 CreateViewFindPartialView으로보기를로드 할 때마다 기록하도록 RazorViewEngine을 사용자 정의 할 수 있습니다. global.asax.cs에서

public class LoggingRazorViewEngine : RazorViewEngine 
{ 
    protected override IView CreateView(
     ControllerContext controllerContext, 
     string viewPath, 
     string masterPath) 
    { 
     LogManager.GetLogger("").Debug(viewPath); 
     return base.CreateView(controllerContext, viewPath, masterPath); 
    } 
} 

구성을

ViewEngines.Engines.Clear(); 
ViewEngines.Engines.Add(new LoggingRazorViewEngine()); 

그런 다음 프로젝트의 전망에 대해 비교 로그인 독특한보기 경로의 목록을 추출합니다. 약간의 노력이 필요하지만, 사용하지 않는 많은 뷰가 프로젝트를 어지럽히는 경우에는 가치가있을 수 있습니다.

-1

의심스러운보기 중 하나의 이름을 바꾸고 일부 컨트롤러에서 오류가 발생합니다.

사용하지 않는보기를 찾는 "내장"기능을 모른다.

+0

컴파일 타임에 발생할 수있는 유일한 문제는 Visual Studio 외부에서 이름을 바꾸고 CSProj에서 이전 이름으로 파일에 대한 참조가 여전히있는 경우입니다. 그렇지 않으면 일치하는보기없이 잘 컴파일됩니다. . ReSharper를 설치했다면 오류가 표시됩니다.하지만 실제로 오류를 표시하려면 컨트롤러를 열어야했습니다. 또한 공유 위치 또는 응용 프로그램 루트보기 디렉토리에서 일치하는 이름을 가진 다른보기가 있으면 삭제하는보기가 영역에있는 경우이 방법도 절대 안전하지 않음에 유의해야합니다. – pwdst

관련 문제