2011-01-27 5 views
2

은 가능한 버전이 설치된 실버 (예 4.0.51204.0)과 설치 폴더 (전직 C의를 찾을 수 있나요 .51204.0) C# 프로그램에서?찾기 실버 버전 및 설치 폴더 프로그래밍

일부 노트 :

    Silverlight 응용 프로그램 내에서
  1. 아니,하지만 다른 곳에서
  2. 이것은에서 HKEY_LOCAL_MACHINE \ SOFTWARE \ 마이크로 소프트 \ 실버 라이트와 같은 것이 아니다 (콘솔 응용 프로그램의 예를 들어) 내 기계.
+0

실제로 CSharpCodeProvider를 사용하여 동적으로 생성 된 소스 코드에서 Silverlight 대상으로 DLL을 컴파일합니다. –

답변

2

레지스트리에 키가 있어야한다 : 마이크로 소프트 \ 실버 \ 버전

\

HKEY_LOCAL_MACHINE \ 소프트웨어 설치 폴더는 항상 같아야합니다

퍼센트 ProgramFiles % \ Microsoft Silverlight

또한이 디렉토리의 파일 (예 : sllauncher.exe)에서 버전 번호를 읽을 수도 있습니다.

+0

음 , 필자는 PC에 Windows 7을 새로 설치했습니다. SL4를 설치했는데 내 컴퓨터에 그런 레지스트리 키가 없다는 것을 확신 할 수 있습니다! % ProgramFiles %는 실제로 도움이 될 수 있지만 SL의 정확한 최신 버전이 필요합니다. –

+2

"% ProgramFiles % \ Microsoft Silverlight \ sllauncher.exe"에서 "FileVersionInfo.GetVersionInfo()"를 사용할 수 있으며 "% ProgramFiles % \ Microsoft Silverlight \"를 해당 버전 번호와 결합하여 전체 디렉토리를 얻을 수 있습니다. 레지스트리 키가 있어야하므로 백업으로 만 사용합니다. – Flavio

+0

좋은 해결책이긴하지만 일상적인 방법을 찾기위한 표준 방법보다 "해킹"과 비슷합니다. 실버 라이트 버전을 얻으려고하는 세계?:) –

0

Silverlight의 official page을 방문하여 버전을 확인할 수 있습니다.

편집 : 콘솔 응용 프로그램에서 수행하십시오. 그냥 버퍼에서 웹 페이지를 가져 와서 정규식이나 간단한 문자열 처리를 사용하여 버전 번호를 찾으십시오. 버퍼에 웹 페이지를 가져 오는 방법의 예는 here을 참조하십시오.

편집 : this을 참조하십시오. 이것은 당신을 위해 일할 수도 있습니다.

+0

물론 "콘솔 응용 프로그램에서"할 수 없습니다 (내 질문에 주 1 참조) –

+0

"가져 오기"방법은 정적 페이지에서만 작동합니다. Silverlight 공식 페이지에는 http 리디렉션과 많은 동적 컨텐츠 + 실버 라이트 콘텐츠가 있습니다. 그 텍스트를 가져 오기 위해 완전한 브라우저 애플리케이션을 작성해야합니다 :) –

+0

동의. 죄송합니다, 그 점을 놓쳤습니다. 다시 수정되었습니다. :) – Yogesh

1

Silverlight 런타임은 내부에서 실행되는 모든 .NET 코드에서 사용할 수있는 표준 방법을 사용할 수 있으므로 CLR입니다. 이 경우 System.Environment.Version은 실행 코드가 현재 실행중인 CLR 버전을 가져 오는 데 사용됩니다. Silverlight 응용 프로그램에서이 코드를 사용하면 해당 시스템에서 실버 라이트 버전이 실행됩니다.

1

64 비트 컴퓨터에서 레지스트리 키는 다음에서 찾을 수 있습니다. HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ Silverlight \ 버전