2010-06-27 2 views
1

나는 내 애플 리케이션과 함께 사용하기 위해 ASP.NET MVC 2 RTM Source을 설정하려했기 때문에, 디버깅 할 때 모델 바인딩과 같은 작업을 수행 할 수 있습니다. 그러나, 나는 그것을 작동시킬 수 없었다 - 내가 좋아하는 오류를 받고 있어요 : ASP.NET MVC 2 소스를 통해 스테핑

내가 (MVC1에 대한) Steve Sanderson's howto의 단계를 따라 ...

The type 'System.Web.Mvc.Controller' is defined in an assembly that is not referenced. 
You must add a reference to assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35'. 

The type 'System.Web.Mvc.Async.AsyncControllerActionInvoker' is defined in an assembly that is not referenced. 
You must add a reference to assembly 'System.Web.Mvc, Version=2.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35'. 

기타하지만, 아마도 MVC2에서 작동하도록 다른 단계가 있습니까?

단계 지금까지 촬영 한 : 내 모든 프로젝트에서 System.Web.Mvc dll 기반의 GAC에

  • 제거 참조.
  • 솔루션에 MVC 소스를 프로젝트로 추가했습니다.
  • 각 프로젝트의 System.Web.Mvc 프로젝트에 대한 참조가 추가되었습니다.
  • Views 폴더에 web.config의 섹션에서 <add assembly="System.Web.Mvc... 항목을 댓글 루트 web.config
  • (그리고 각 영역의 Views 폴더)의 <compilation><assemblies> 섹션에서 <add assembly="System.Web.Mvc... 항목을 댓글
  • 찾기/System.Web.Mvc, Version=2.0.0.0에 참조 중 하나를 교체 null 자신의 PublicKeyToken 값을 대체 그래서

, 질문 (31bf3856ad364e35했다) s :

  • 다른 사람이이 기능을 가지고 있습니까? (아마도 예!)
  • PublicKeyToken 어디서 오류가 있습니까?
  • (예 : System.Web.Extensions)에있는 다른 DLL에 대해 이와 동일한 내용의 참조 번호가 있습니다 (관련 항목 : System.Web.Extensions).
  • 내가 뭘 잘못하고 있는지 알기! 내가 놓친 단계들?

고맙습니다!

UPDATE :

1)의 web.config에서 현재 어셈블리 노드 :

<compilation debug="true"> 
    <assemblies> 
     <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
     <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"/> 
     <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
     <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
    </assemblies> 
</compilation> 

2) 예, 내가 사용하고 MVC 선물 시드의 질문에 대한 응답으로 는, 여기에 몇 가지 추가 정보입니다 ,하지만 그 프로젝트가 내 솔루션에 내장되어 있고 솔루션에서 System.Web.Mvc를 사용하도록 참조했습니다.

3) 일부 비표준 참조를 사용하고 있습니다.오히려 스크린 샷 것을 나는 여기에 나열됩니다 :

Autofac 
Autofac.Integration.Web 
Autofac.Integration.Web.Mvc 
Elmah 
FluentValidation 
FluentValidation.Mvc 
log4net 
MvcContrib 
MySql.Data 
NHibernate 
MvcFutures 

답변

1

대신 <assemblies><add assembly> 라인을 주석, 당신은 대신 PublicKeyToken = null을 설정해야합니다.

+0

좋아, 그냥 시도하고 여전히 두려워 같은 오류가 발생합니다. – UpTheCreek

+0

기타 질문. 1) "assemblies"노드에서 수정 된 행을 나열 할 수 있습니까? 2) 프로젝트에서 참고 문헌의 화면 캡처를 수행 할 수 있습니까? 3) MVC 선물을 사용하고 있습니까? – Syd

+0

감사합니다. 요청한 정보로 질문을 업데이트했습니다. – UpTheCreek

3

GAC에서 소스 코드를 다운로드하거나 참조를 제거 할 필요가 없습니다. this blog post에 설명 된 단계를 따르십시오.

  • 의 선택을 취소 : 그냥 내 (단지 관리) 코드
  • 확인을 사용 : 소스 서버 지원 사용
  • 귀하의 서버를 추가합니다 : VS2010에서 만 VS2008에서 Microsoft Symbols Servers, URL을 입력 할 필요를 확인해야 당신은 URL을 입력 할 필요가

컨트롤러 액션에 중단 점을 넣고 중단 점을 당한다 때, 호출 스택에서 System.Web.Mvc 조립 및 기호되면 기호를로드, 새로운 ASP.NET MVC 응용 프로그램을 만듭니다 당신은 abl 될로드됩니다 e (조건을 수락 한 후) 소스 코드를 단계별로 실행하십시오.

+0

그래, 나는 그런 식으로하는 것이 더 좋았지 만 현재의 엄격한 네트워크 설정은 영원한 원본 서버가 옵션이 아니라는 것을 의미합니다. . 소스가 작동하지 않으면 결국 갈 수있는 방법 일 수 있습니다. – UpTheCreek

+0

물론 '이전의 코멘트'에서 '영원한'이 아닌 '외부'를 의미합니다.) – UpTheCreek