2012-02-04 3 views
1

VS2010에 표준 웹 사이트 프로젝트 및 웹 배포 프로젝트가 있습니다. 나는이 프로젝트와 배포 패키지를 문제없이 약 4 년 동안 사용 해왔다.DLL로 컴파일하는 ASP.NET 사용자 컨트롤

배포 패키지가 '모든 페이지와 컨트롤 출력을 단일 어셈블리로 병합'으로 설정되었습니다.

지금까지 3-4 년 동안이 설정에 문제가 없었습니다! 웹 사이트의 최신 버전에서는 일부 페이지가있는 폴더와 3 개의 사용자 컨트롤이있는 다른 폴더를 추가했습니다. 이제 3 개의 사용자 컨트롤 중 2 개의 배포 패키지를 빌드하면 자신의 dll로 컴파일되고 나머지는 다음과 같이 컴파일됩니다. 예상했다. 나는 세 가지 컨트롤 모두의 코드 숨김 코드에서 네임 스페이스를 확인했으며 모두 동일하며 컴파일러에게이 두 컨트롤을 컴파일하지 말고 다른 컴파일러를 컴파일하지 못하도록 할 수는 없다.

내 컨트롤은 네임 스페이스 G2F.Forms.Controls.FormDefintitionListItemControl (폴더 구조와 컨트롤 이름을 반영 함)에 있습니다.

.FindControl ("idName에는")를 MyControl

웹 사이트를 사용할 때 모두가 잘 작동 코드 또는 같이

나는 이러한 컨트롤 중 하나에 대한 참조를 얻을 필요가 있고 사용하는 페이지가 프로젝트를 실행하고 있지만 웹 사이트를 컴파일 할 때 컨트롤의 형식이 ASP.forms_controls_formdefinitionlistitemcontrol_ascx이기 때문에 위의 코드는 null을 반환합니다.

이 컨트롤과 다른 컨트롤은이 방법으로 컴파일하는 유일한 컨트롤이며 솔루션에는 약 40-50 개의 컨트롤이 있습니다.

+0

네임 스페이스 이름이 아닌 어셈블리 이름을 확인하십시오. – TheGeekYouNeed

+0

어떤 어셈블리 이름을 확인해야합니까? 그것은 웹 사이트 (응용 프로그램 아님)이고 컨트롤은 웹 사이트 내의 폴더에 앉아 있습니다.이 두 컨트롤을이 두 컨트롤에 부합시키는 것은 웹 배포 프로젝트입니다. App_Web_formdefinitionlistitemcontrol.ascx.32390934 & App_Web_sectiondetailcontrol.ascx.32390934 dlls ?? 모든 다른 컨트롤은 웹 배포 설정에 명시된대로 G2F.Collective.WebUI dll에 내장됩니다. – Reuben

+0

"이 미리 컴파일 된 사이트를 업데이트 할 수 있도록 허용 하시겠습니까?" – TheGeekYouNeed

답변

2

웹 사이트를 웹 응용 프로그램으로 변환하여 해결책을 찾았습니다.이 작업을 수행 할 때 많은 잡아 당김이 있었지만 결국에는 많은 양의 정렬 및 정당한 컴파일을 거쳐 배포 설정을 올바르게 가져 왔습니다. "이 미리 컴파일 된 사이트를 업데이트하도록 허용"을 선택하십시오!) 제대로 작동하도록했습니다.

다소 극단적 인 것처럼 보일 수 있지만 오류를 추적하고 4 일을 다시 보내면 다시 작동시킬 수 있다는 것이 좋습니다.