문제

방금 VS 2010 베타 2를 설치했으며 ASP.NET MVC 2 프로젝트와 함께 플레이하고 싶었습니다. 나는 단순히 스크립트를 추가했습니다 (alert('hello');) 홈 컨트롤러의 index.aspx 뷰로, 실행되는 것을 볼 수 있습니다. 그러나 중단 점을 설정하려고 할 때는 결코 맞지 않습니다. 또한 "디버거"키워드를 사용하려고했는데, 그렇게하면 실망스러운 "현재 위치 위치에 사용할 수있는 소스 코드가 없습니다"메시지가 없습니다. 또한 앱이 실행중인 IE 프로세스에 독립적으로 첨부하려고 할 때이 메시지를받습니다.

친절한 스크립트 디버깅 경험을 얻으려면 어떻게해야합니까? (나는 이것을 디버깅하기 위해 Firebug를 성공적으로 사용했지만 어떤 이유로 vs 디버거를 선호합니다.)

내 구성에 대한 몇 가지 세부 사항은 다음과 같습니다.

  • 2010 년 베타 2에서 내 물건을 출시하고 있습니다.
  • IE8 버전 8.0.7600.16385는 기본 브라우저입니다.
  • "스크립트 디버깅 비활성화 (Internet Explorer)"고급 옵션은 확인되지 않았습니다.
  • "스크립트 디버깅 비활성화 (기타)"옵션은 확인되지 않았습니다.
  • 내 ASP.NET MVC 2 Project의 "Web"Properties 탭에서 ASP.NET 디버거가 확인됩니다. 다른 모든 사람들은 확인되지 않았습니다.
  • Visual Studio 2008 스크립트 디버깅은 잘 작동하는 것 같습니다.
도움이 되었습니까?

해결책

Debugger는 Silverlight 디버거가 선택되면 JavaScript 디버깅이 꺼져있는 경우 Silverlight 코드와 스크립트 코드를 동시에 디버깅 할 수 없습니다.

  1. 프로젝트의 속성 (Alt+Enter)으로 이동하십시오.
  2. 웹 사이트 프로젝트의 경우 : "옵션 시작"을 선택하십시오. 또는 웹 어플리케이션의 경우 : 웹 탭으로 이동하면 하단에는 Debuggers 옵션이 표시됩니다.
  3. JavaScript를 디버그 할 수 있으시면 Silverlight 확인란이 틱되지 않은지 확인하십시오. (여기서 UI 가이 부작용에 대해 명확하지 않은 것은 불행한 일입니다.)

다른 팁

나는 같은 문제를 겪고 있었다. 스크립트 태그 내부의 중단 점에서 IDE를 깨뜨릴 수 없었습니다. 그러나 "디버거"를 추가했을 때; 스크립트 태그의 첫 번째 줄은 IDE가 응답 할 수 있었지만 분리가 가능하지 않다고 말하면서만.

그러나 "Step Inter"및 "Step Over"와 같은 디버그 도구를 클릭 할 수있었습니다. 내가이 일을했을 때 IDE는 내가 사용하는 외부 스크립트 중 일부 (jQuery 및 Google지도)로 진행되었습니다. 그래서 JavaScript 코드 블록을보기에서 꺼내서 "Content"폴더의 별도의 .js 파일에 넣습니다. 그런 다음이 새로운 .js 파일 (url = "/content/test.js")을 참조하기 위해 스크립트 태그를 추가했습니다.

그것은 당신 이이 노력을 겪어야한다는 것이 약간 귀찮았지만 아마도 JavaScript에 직접 포함되지 않은 것에 대해 말할 것이있을 것입니다. 나는 이것이 그들이 고치려는 버그이기를 바랍니다.

IE를 디버깅 할 때 VS는 솔루션 탐색기에 '스크립트 문서'라는 폴더를 추가하는 것으로 보입니다. 이 폴더 내부에는 'Wind 이 HTML 파일의 스크립트 태그에서 중단 점을 설정하면 작동합니다.

이를 해결하려면 프로젝트의 속성으로 이동하여 "시작 옵션"을 선택하십시오. 그런 다음 기본 코드 확인란을 확인하십시오. 두 옵션이 모두 함께 작동하지 않기 때문에 Silverlight Checkbox를 선택 취소하십시오.

ctrl+alt+p (프로세스에 첨부), IE를 선택하고 디버깅 유형의 '스크립트'를 선택하십시오.

Ryan이 위에서 언급했듯이 스크립트를 스크립트 폴더 아래의 별도 파일로 옮겼습니다. 또한 스크립트 이름에 디버그를 추가하여 MyTestScript가되었습니다.디버그.js. 스크립트 태그를 통해 스크립트를 포함 시켰으며 디버거가 적힌 스크립트 파일에서 중단 점을 설정할 수 있습니다.

Google Chrome Devloper 도구가 JavaScript를 완벽하게 보여줍니다. 필자의 경우 일반적으로 jQuery의 getScript 함수로 스크립트를로드하고 있으며 코드의 실행은 일반적으로 페이지를로드하거나 이벤트를 처리 할 때 jQuery 콜백을 통해입니다. Visual Studio 2010을 사용하면 "소스 없음"버그를 자주 만났습니다. 슬프게도 시각적 스튜디오 프로젝트의 일부인 JavaScript를 디버그하려면 Chrome이 필요합니다.

별도의 JS 파일을 사용하면 단점이 있습니다. 예를 들어 MVC 도우미를 사용할 수 없습니다. Microsoft는 실제로 이것을 알아 내야합니다.

IntelliSense는 다음과 같은 참조 주석을 포함하더라도보기에서 스크립트 블록에서 제대로 작동하지 않습니다.

/// <reference path="/Scripts/jquery-1.6-vsdoc.js" />
/// <reference path="/Scripts/jquery-1.6.js" />

지적은이 접근법으로 JS 파일에서 잘 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top