2011-08-01 4 views
2

누구나 Nuget을 사용하여 전체 ASP.NET MVC 애플리케이션을 패키징 해 보았습니까? 컨트롤러, 뷰, 헬퍼 및 유틸리티를 여러 MVC 프로젝트로 가져오고 싶습니다.Nuget을 사용하여 ASP.NET MVC 애플리케이션 패키지하기

문제는 경로가 작동하지 않아야하며 그렇지 않아야하는지 여부입니다. 문제는 우리가 가져온 패키지 프로젝트가 자체 global.asax.cs와 자체 경로를 갖고 있다는 것입니다. 이것이 현재 프로젝트의 global.asax 및 그 경로와 어떻게 결합됩니까?

누군가 이러한 패키지에 대한 경험이 있다면 답장을 보내주십시오.

답변

1

여러 위치에서 경로를 등록하려면 MVC 영역 기능을 사용해보십시오. 어떻게 보이는지 보려면 MVC 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Add/Area를 선택하십시오. 그런 다음 생성 된 AreaRegistration 파일을 살펴보십시오.

업데이트 : using WebActivator는 global.asax를 수정하지 않고도 시작할 때 코드를 실행하는 또 다른 방법을 제공합니다.

+0

안녕하세요 David, 사실 WebActivator 패키지를 발견 했으므로 원하는 경로에 따라 사전 또는 사후 시작 방법에 경로 등록을 배치하여 원하는대로 정확하게 수행 할 수있었습니다. 그러나 단 하나의 문제가 있으며, 그것은 우리가 패키지를 가져 오는 프로젝트에 이미있는 global.asax.cs와의 상호 작용입니다. 경로 이름이 중복되지 않도록 조심해야한다는 것은 런타임에 "콜렉션에 이미있는 경로"오류가 발생하기 때문입니다. 이제 이것에 대한 유일한 해결책은 내 패키지에 경로 이름 접두어를 붙이거나 다른 아이디어가 있습니까? – mare

+0

경로 이름이 전 세계적으로 고유한지 확인해야합니다. 그렇지 않으면 MVC가 폭발합니다. 접두사를 자동으로 수행하는 경로 등록 도우미를 가질 수 있습니다. 어쨌든, 경로 이름을 '고유하게'하는 것은 그다지 고통스럽지 않습니다 :) –

1

경로가 병합되지 않으므로 경로를 결합하여이 작업을 수행해야합니다. 별도의 경로를 유지하려는 경우 고유 한 경로가있는 영역을 사용할 수 있지만 컨트롤러와 뷰를 여러 개 가져 오는 경우 새 응용 프로그램에서 의미가 있도록 프로젝트의 경로를 편집해야합니다.

0

필요한 파일을 복사하는 당신을 도울 수있는 스크립트 응용 프로그램이 있습니다, 참조 : https://nugetpackager.codeplex.com

있는 영역/Webactivator 설정과 함께 잘 작동합니다.