2011-03-21 4 views
0

다른 모듈이 있기 때문에이 작업을 수행 할 수 있음을 알고 있지만 작동시키지 못하고 있습니다.DotNetNuke 모듈의 맞춤 클래스

DotNetNuke 사이트에 대한 사용자 지정 모듈을 만들었습니다. 나는 그 객체에 대한 정보를 담기 위해 모듈 내에 클래스 객체를 생성 할 수 있기를 원한다. 개체를 만들면 모든 것이 순응합니다. 그러나 코드 숨김에서 객체를 사용하려고하면 객체가 정의되어 있지 않다는 것을 나타냅니다. 여기에서 어디로 가야할지 모르겠습니다.

Namespace Modules.VacationForms 

Public MustInherit Class Vacation 

이 작동하지 않는 이유를 정말 잘 모르겠어요 :

Namespace Modules.VacationForms 

Public MustInherit Class View 
    Inherits PortalModuleBase 

이것은 객체 클래스의 시작이다 :

은 View.ascx.vb의 시작입니다. 비교하기 위해 다른 모듈 코드를 다운로드했고 모든 것을 말할 수있는 한 동일합니다. 어떤 도움을 주셔서 감사합니다.

답변

2

웹 사이트 프로젝트 또는 웹 응용 프로그램 프로젝트를 사용하고 있습니까? 웹 응용 프로그램 프로젝트를 사용하면 모든 코드를 함께 컴파일 할 수 있습니다 (프로젝트의 루트 네임 스페이스 설정 만 문제가 될 수 있지만 두 클래스가 같은 프로젝트에 있다고 가정하면 그 두 가지 클래스가 같아서는 안됩니다). 웹 사이트 프로젝트 (예 : DNN 솔루션에서 직접 개발하는 경우)의 경우 코드가 전통적인 의미로 컴파일되지는 않지만 DNN에서 편집 한 주문형입니다. 요청한 컨트롤/페이지 (예 : View.ascx.vb) 및 App_Code 폴더의 코드 파일과 관련된 파일의 코드에만 해당됩니다. 귀하의 전화 접속이 귀하의 Vacation 클래스의 코드 파일이 App_Code 폴더에 없다고 생각합니다.

+0

하는 데 도움이 작동하지만,이 클래스가 포함됩니다 I 모듈에 대한 설치 패키지를 작성하는 경우의 문제를 불러옵니다? –

+0

웹 응용 프로그램 프로젝트로 전환하는 것이 좋습니다 (http://weblogs.asp.net/ianrobinson/archive/2008/10/15/creating-dotnetnuke-modules-using-a-web-application-project-wap 참조). aspx)하지만 모듈에 App_Code 파일을 패키지화 할 수 있습니다 (매니페스트에서 파일 경로를 지정). – bdukes

0

모듈 개발을 위해 웹 응용 프로그램 프로젝트를 사용하지 않는 것 같습니다. 가장 쉬운 방법은 모듈 개발 템플릿을 설치하는 것입니다 (dotnetnuke.codeplex.com에서 dnn 버전의 starterkit 패키지 다운로드).

모듈이 너무 간단하고 당신이 그렇게하고 싶지 않아, 또는 당신이, 당신이 다음을 수행 할 수 있습니다 당신의 PC에서 템플릿을 설치하지 않는 경우 :

  • 당신은을 사용하는 경우 vs 기본적으로 WAP을 사용하지 않는 버전은 웹에서 설치하십시오.
  • 루트의 DesktopModules 디렉토리에 dnn 모듈에 대한 새 폴더를 만듭니다.
  • 해당 폴더에 새 WAP 프로젝트를 추가하십시오.
  • 은 해당 폴더에서 Web.config를 제거 당신이 그와 함께 완료되면
  • (../../bin 대부분의 시간을 작동합니다) 당신의 DNN 사이트의 bin 디렉토리 속성과 포인트 빌드 출력 디렉터로 이동 모든 코드가 예상대로 작동하기 시작합니다.
  • 좋은 점은 모든 .vb 및 .ascx.vb 파일이 패키지로 쉽게 배포 할 수있는 단일 dll로 컴파일된다는 것입니다.

희망이 내가 App_Code 폴더에 휴가 클래스를 이동