2010-05-25 3 views
3

두 개의 asp.net 사이트 (episerver 기반)가 있습니다.
Telerik Asp.net 컨트롤을 사용합니다.
두 사이트에서 사용할 수있는 기능이 일부 있습니다.
지금은 사이트 중 하나에서 webparts/usercontrols를 사용하고 다른 하나는 usercontrols를 사용합니다.사이트간에 usercontrols/기능을 어떻게 공유합니까?

이러한 사이트간에 기능을 공유하는 방법이 있습니까?
내가 원하는 것은 사이트간에 usercontrols를 공유 할 수 있다는 것입니다.

답변

3

사용자 컨트롤에 관해서는 사용자 컨트롤의 일부인 .ascx 파일도 있다고 가정하므로 까다로운 내용입니다.

이상적인 솔루션은 모든 것을 서버 컨트롤로 옮기는 것입니다. 어셈블리를 참조 할 수는 있지만, .ascx 파일을 사용하는 다른 컨트롤을 상속하는 경우에는 그저 당신이 붙어 있어야합니다.

Visual Studio의 파일 연결 기능 (기존 파일 추가, 아래쪽 화살표 클릭, 링크 옵션 선택)을 사용하여 동일한 솔루션 내의 프로젝트간에 동일한 실제 파일을 공유하는 것이 한 가지 방법입니다. 이는 ascx 파일이 배포 전에 두 사이트에 모두 복사되었는지 확인해야하기 때문에 이상적이지 않습니다. 그러나 이전에는 빌드 스크립트를 사용하여이 작업을 수행 했었지만 아직 많이 손상 될 수 있습니다.

기술적으로 더 복잡하지만 "더 나은"처리 방법은 Virtual Path Provider을 사용하는 것입니다. Here은 가상 경로 공급자를 사용하여 원하는 작업을 수행하는 방법에 대해 설명합니다.

+0

Yepp 나는 ascx 파일을 가지고 있는데, 내가 제안한 링크를 살펴볼 것이다. 서버 제어 옵션에 대해 알고 있었지만 오히려 ascx 파일을 손상시키지 않았습니다. 감사합니다. –

2

새 클래스 라이브러리 프로젝트를 시작하고 두 프로젝트에서 해당 프로젝트를 참조한 다음 공용 컨트롤과 코드를 라이브러리 프로젝트로 가져옵니다.

+0

하지만 ascx 파일은 포함되지 않습니다. –

0

위에서 언급 한 것처럼 라이브 환경의 VPP 디렉토리에 파일을 넣을 수 있으며 그런 식으로 ASCX 파일을 두 사이트 코드의 infront 업데이트 용으로 한 폴더에만 복사하면됩니다. 코드 비하인드 업데이트는 두 사이트 모두에 대해 DLL을 빌드하고 덮어 쓸 필요가 있습니다.

개발 환경에서 SVN을 사용하는 경우 프로젝트 중 하나에서 svn : external 링크 된 폴더를 설정할 수도 있습니다. 그런 식으로 하나의 저장소에 코드와 개정 내역 만 있습니다.

관련 문제