프로젝트간에 MasterPage를 공유하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/30884

  •  09-06-2019
  •  | 
  •  

문제

공통 MasterPage를 사용해야하는 두 개의 별도 ASP.NET 웹 응용 프로그램 프로젝트가 있다고 가정합니다.

코드를 복제하지 않고 프로젝트간에 MasterPage를 공유하는 가장 좋은 방법은 무엇입니까?소스 제어 또는 파일 시스템 해킹에 의존하지 않는 것이 좋습니다.

도움이 되었습니까?

해결책

저도 같은 일을하려고 노력하고 있습니다.몇 가지 솔루션을 살펴 보지만 가상 디렉터리를 사용하는 것이 마스터 페이지를 공유하는 가장 좋은 방법이라고 생각합니다.

다음은 볼 수있는 몇 가지 출처입니다.

다른 팁

K. Scott Allen의 ASP.Net 마스터 페이지 : 팁, 요령 및 함정 "마스터 페이지 공유"에 대한 기사 : <인용구>

첫 번째 방법은 공유 마스터 페이지 파일을 IIS 웹 서버의 단일 위치. 그런 다음 각 응용 프로그램은 가상 디렉터리를 하위 디렉터리로 지정하고 가상 디렉터리를 가리 킵니다. 마스터 페이지의 실제 디렉토리에. 그런 다음 응용 프로그램을 설정할 수 있습니다. 페이지의 MasterPageFile 속성을 가상의 이름으로 디렉토리와 마스터 페이지 파일의 이름. 우리가 떨어 뜨릴 때 마스터 페이지 파일을 실제 디렉토리 인 새 마스터 페이지로 업데이트했습니다. 모든 응용 프로그램에 즉시 나타납니다.

두 번째 접근 방식은 버전 관리 시스템을 사용하여 여러 프로젝트의 마스터 페이지 파일. 대부분의 소스 제어 / 버전 제어 시스템은 일정 수준의 "공유"기능을 지원합니다. 파일 또는 폴더가 둘 이상의 프로젝트에 나타날 수 있습니다. 때 개발자는 업데이트 된 마스터 페이지 파일, 다른 프로젝트를 확인합니다. 변경 사항을 즉시 확인할 수 있습니다 (이 동작은 일반적으로 구성 가능). 프로덕션 및 테스트에서 각 애플리케이션은 업데이트 마스터 페이지가 나타나도록 재배포해야합니다.

마지막으로 ASP.NET 2.0의 VirtualPathProvider는 파일 시스템에 존재하지 않습니다. VirtualPathProvider를 사용하면 모든 애플리케이션이 데이터베이스 테이블에있을 수있는 마스터 페이지의 수 사용하다. VirutalPathProvider에 대한 훌륭한 기사는“ 콘텐츠에 대한 액세스 가상화 : 웹 서비스 제공을 참조하십시오. ZIP 파일의 사이트 ”.

소스 제어에 기본 사본을 보관하고 소스 제어 시스템이 이에 대해 걱정하게하십시오.

모든 프로젝트에 대한 공통 저장소 (예 : 소스 제어 트리의 공통 폴더)를 생성 할 수 있다고 가정하면 상대 경로를 사용하여 마스터 페이지를 링크로 추가 할 수 있습니다.

그러나 IIRC, Visual Studio는 외부 경로에서 추가 된 파일의 로컬 복사본을 만듭니다.링크 된 파일을 추가하려면 솔루션 / 프로젝트 파일을 텍스트 편집해야 할 수 있습니다.

물론 "웹 애플리케이션"형식을 사용한다고 가정합니다.이전 VS "웹 사이트"에는 프로젝트 파일이 없으며 사이트 폴더 내에 모든 파일이 있어야합니다.

AFAIK 당신이 찾고있는 것을 할 수있는 우아한 방법은 없습니다 .. VS는 항상 그것을 복사합니다.

솔직히 말해서 좋은 생각이 아닐 수도 있습니다 .. 분명히 가장 낮은 공통 코드를 공유하고 싶지만 MasterPage 전체를 공유하고 싶습니까? .. 사소한 변경으로 인해 문제가 발생할 수 있습니다.하나 이상의 애플리케이션에 미치는 영향 ..

대신 좋은 기능을 구성 요소 / 컨트롤로 분리하고 배포하는 것이 좋습니다.

여러 프로젝트에서 동일한 마크 업을 원하는 이유를 알 수 없습니다. 그렇게한다면 쉬운 방법을 모릅니다.

하지만 코드를 사용하면 분명히 상속 된 코드 파일을 작성할 수 있습니다. 라코 디스

모든 마스터 페이지에 원하는 로직을 입력하세요.멋진 dll로 빌드 한 다음 프로젝트에 포함하세요.

기호 링크 사용 : <인용구>

심볼릭 링크는 다른 파일을 가리키는 파일 시스템 객체입니다. 시스템 개체.가리키는 대상을 대상이라고합니다. 심볼릭 링크는 사용자에게 투명합니다.링크가 정상적으로 나타납니다. 파일 또는 디렉토리, 사용자 또는 응용 프로그램에 의해 작동 가능 똑같은 방식으로.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top