2014-10-31 1 views
0

F5를 눌러 설치하지 않고 Visual Studio에서 직접 Windows 서비스를 실행할 수 있습니다.Windows 서비스가 코드 변경을 선택하지 않는 이유는 무엇입니까?

  var service = new JSpargoService(); 
#if DEBUG 
     var logger = Log.GetLogger<JSpargoService>(); 
     logger.Warn("Start service as console application... for debuging purposes! Please  use 'Release' mode to run as windows service!"); 
     service.Start(); 
     Console.WriteLine("Running..."); 
     Console.WriteLine("Press any key to stop program!"); 
     Console.Read(); 
     service.Stop(); 
#else 
     ServiceBase[] ServicesToRun; 
     ServicesToRun = new ServiceBase[] 
     { 
      service 
     }; 
     ServiceBase.Run(ServicesToRun);   
#endif 

좋아, 내가 디버그 갈 수 있습니다 : 난 할 수 있어요

때문에 Program.cs에서 나는 부분이있다. 여기 내 문제가 있습니다. Windows에서 코드 변경 내용을 가져 오지 않습니다. 새 코드를 수정하면 새 변수를 추가하고 결과를 반환 할 수 있습니다. 변수 위에 마우스를 올려 놓으면 var가 존재하지 않는 것처럼 보입니다.

마치 디버그 모드로 다시 컴파일하지 않는 것과 같습니다. 이상합니다. 도와주세요!

답변

0

서비스가 실제로 실행되는 동안 코드를 다시 컴파일 하시겠습니까? 그것은 일어나지 않을 것입니다.

+0

물론 아닙니다. 나는 그만 둔다. 코드를 수정하십시오. 그리고 다시 시작하십시오. 새 코드가 인식되지 않습니다. 새 코드를 가져 가면 아무 것도 없습니다. 이전 코드 위로 마우스를 이동하면 값을 볼 수 있습니다. 그리고 새 코드의 중단 점이 사라집니다. 그러나 디버그 폴더의 dll에는 컴파일 된 날짜가 있습니다. 그것은 단지 이해가되지 않습니다. – Sam

+0

오케이 - 그래서 문제는 정확히 내가 생각했던 것이 아닙니다. "내 서비스 시작 중 ..."및 "내 서비스 중지 중 ..."을 입력하고 콘솔 창에서 볼 수 있습니다. 그래서 나는 편집 할 수있다. 그러나 서비스가 인스턴스화하는 또 다른 클래스는 수정하고 다시 컴파일 할 수없는 클래스입니다. – Sam

+0

마지막으로 코드와 줄 번호 사이에 노란색 선이 있음을 알게되었습니다. 그래서 문제는 파일을 저장할 수 없다는 것입니다. 그러나 파일의 탭에 이름이있는 별표가 없습니다. 그래서 그것이 구원 받았던 것처럼 보입니다. – Sam

관련 문제