2009-05-13 4 views
1

Asp.Net 용 C#으로 웹 응용 프로그램 프레임 워크를 구축하고 있습니다. 프레임 워크는 dll 파일, 코드 숨김 파일이있는 aspx 파일, App_Code의 코드 파일, CSS 파일 및 이미지의 혼합으로 구성됩니다.전체 asp.net 웹 사이트를 어떻게 하나의 dll에 넣을 수 있습니까?

Visual Studio 2008의 "웹 응용 프로그램"프로젝트를 살펴 보았습니다. 이렇게하면 모든 코드 파일을 제거하고 bin 폴더의 한 dll에 넣을 수 있습니다. 그러나 다른 모든 파일은 그대로 유지됩니다.

나는이 파일들을 리소스 파일에 넣고 dll 파일에 포함시킬 수 있어야한다고 생각한다. 텔 레릭 (Telerik)과 같은 일부 컨트롤 제공 업체가이를 수행합니다.

어떻게하면 되나요? 그리고 파일의 수가 1000 개를 넘기 때문에이를 수행하는 자동화 된 프로세스가 있습니까?

어떤 도움이 많이 제공됩니다!

+0

설치 프로그램을 고려해 보셨습니까? –

+0

그게 내가 dll에 전체 사이트 퍼팅에 도움이됩니까? 물론 배포에 도움이되지만 설치시에도 여전히 많은 파일이 포함됩니다. 그렇지 않습니까? –

+0

네,하지만 일단 설치가되면 얼마나 많은 파일이 있는지가 중요합니다. –

답변

3

당신은 실제로 하나의 조립, Web.config 파일과 Global.asax 파일에 사이트를 줄일 수 있습니다.

이렇게하려면 포함 된 리소스를 사용하여 모든 정적 콘텐츠 (이미지 등)를 어셈블리에 포함하십시오. 이것은 Telerik과 같은 구성 요소 공급 업체가 컨트롤에 단일 어셈블리 배포를 제공하기 위해 수행하는 작업입니다. 다음 가상 경로 공급자를 사용하여 포함 된 리소스를 제공 할 수 있습니다. good article은 msdn에서 가상 경로 공급자와 함께 사용할 수 있습니다. 웹 응용 프로그램 프로젝트를 사용하면 페이지 (.aspx)와 사용자 정의 컨트롤 (.ascx)을 리소스로 포함 할 수도 있습니다.

라우팅 모듈을 사용하면 어셈블리에 포함 된 페이지에 대한 URL의 거의 투명한 변환을 구현할 수 있습니다.

몇 가지 제한 사항이 있습니다.

  • IIS6은 기본적으로 어셈블리의 정적 콘텐츠를 제공하지 않습니다. 맞춤 핸들러 (예 : files.ashx/my/static/content.jpg)를 사용하거나 와일드 카드 매핑을 사용하여 모든 요청을 애플리케이션에 라우팅하도록 IIS를 구성하십시오.
  • 어셈블리에 페이지를 포함 할 때 Visual Studio에서 일부 디자이너 지원을 잃게됩니다.
+0

감사합니다. 나를. –

2

ASP.NET은 실제로 "단일 DLL로 컴파일"접근법을 가지고 있지 않습니다. (불행히도 - 나는 그 자신을 여러 번 바랬습니다!).

언급했듯이 웹 응용 프로그램을 사용하면 다소 혼란을 줄일 수 있습니다.

Web Deployment는 웹 페이지의 코드가 단일 DLL로 컴파일되고 실제로 업데이트에서 수정할 수없는 경우 개의 파일이 여전히 설치에서 제거 될 수 있습니다. 여기 저기 놓여있다.

불행히도 지금 시점에서 요구 사항에 맞는 "즉시 사용 가능한"솔루션이 없다고 생각합니다. (지금까지 들었지만 VS2010/ASP.NET 4.0 중 하나).

마크

+0

오케이, 나쁘다 :(맞춤 조작기를 작성하고 많은 URL을 다시 작성하고 반자동 시스템을 직접 만들어야한다고 생각합니다. 시간이 좀 걸립니다 .... 답변을 주셔서 감사합니다 –

1

ASP.Net 종류에는 Microsoft의 추가 기능이있는 "단일 DLL로 컴파일"되어 있습니다. "Web Deployment"추가 기능을 살펴보십시오. 이렇게하면 을 거의 하나의 DLL에 모두 (ASCX 컨트롤 포함)으로 컴파일 할 수 있습니다. 이러한 컨트롤은 ASCX 컨트롤을 포함하여 쉽게 배포 할 수 있습니다.

관련 문제