none
닷넷.. 윈도우 10에서 안먹는 함수가 있어요... RRS feed

  • 질문

  • C# 윈폼(닷넷 프레임웤 4.0)으로 윈도우용 어플리케이션을 개발하고 있습니다. MS-SQL Server 2014 Express를 함께 사용하는데...

    SQL 서버 목록을 얻기위해.. System.Data.Sql.SqlDataSourceEnumerator.Instance.GetDataSources() 를 사용하고 있습니다.

    그런데, 윈도우 XP, 7, 8.1에서 잘 되던 System.Data.Sql.SqlDataSourceEnumerator가 윈도우 10에서는 먹질 않네요..^^;;

    Microsoft.SqlServer.Management.Smo.SmoApplication.EnumAvailableSqlServers() 이걸로 받아와볼까 했는데.. 이것도 윈도 XP, 7, 8.1에서는 잘 되는데, 윈도우 10에서는 안되구요..ㅠㅠ

    하도 답답해서.. 대상 닷넷 프레임워크 버전을 변경하면서 해 보니.. 윈도우 10에서 대상 닷넷 프레임워크 버전을 3.5로 하면  System.Data.Sql.SqlDataSourceEnumerator가 작동을 합니다.. 닷넷 프레임워크 4.0~4.6까지는 작동을 안하구요^^;;

    비주얼스튜디오 2013 업데이트5로 했을때와 비주얼스튜디오 2015로 했을때... 둘 다 같은 결과네요...

    혹시 버그일까요? 아니면 제가 무슨 설정을 빼먹은것일까요??

    우선은.. 윈도우 버전 체크해서 윈도우 10이면 닷넷프레임워크 3.5대상으로 따로 EXE를 만들어서 서버 목록을 받아오도록 하긴 했는데... 윈도우 10에는 닷넷프레임워크 3.5가 기본으로 깔려 있지도 않아서... 배포할때 닷넷 3.5도 따로 깔도록 해야 할 상황이니..ㅠㅠ 답답하네요...ㅠㅠ

    답변 부탁드립니다~

    • 편집됨 Hyunwook Lee 2015년 8월 2일 일요일 오전 8:06
    2015년 8월 2일 일요일 오전 8:05

모든 응답

  • 실제로 해보니까, 저도 재현이 되는 군요. ^^ 단지, Windows Server 2012 R2에서도 .NET 4.0으로 되는 경우가 있고 안되는 경우가 있는데요. .NET Reflector로 파고 들어가 보니 닷넷 코드 수준에서 문제가 발생하는 것이 아니고 그 하위의  SNINativeMethodWrapper.SNIServerEnumOpen 자체에서 0을 반환하는 걸로 보아 아무래도 마이크로소프트 측 버그가 아닐까 생각합니다. (어쨌든, 외부에서 버그 파악하기가 쉽지 않은 단계입니다.)

    https://connect.microsoft.com/VisualStudio

    위의 Connect 사이트에서 관련 버그를 등록해 보는 것이 좋겠습니다.

    2015년 8월 6일 목요일 오전 2:13
  • 감사합니다.. 안되는 영어로 컨넥트 사이트에서 버그 등록 했습니다^^;;;;;;;;;;

    날씨 더운데.. 즐거운 하루 되세요^^

    2015년 8월 7일 금요일 오전 1:36