2017-03-14 6 views
2

Visual Studio 2017이 이제 모든 SKU (Enterprise, Professional 및 Community) 설명 here의 레지스트리가없는 병렬 설치를 지원한다는 것을 알고 있습니다.MR20 (VS2017 Most Recently Used) 솔루션 및 프로젝트 찾기

VS2017 MRU (Most Recently Used) 솔루션 및 프로젝트 목록에 액세스해야합니다.

이전 VS2017 버전에서는 레지스트리를 쿼리하는 데 사용했습니다.

    는 VS2017의 devenv를 공정 내부에서 실행 중일 때이 레지스트리 쿼리 코드는 여전히 잘 작동
  • ,
  • 하지만이 독립/사용자 정의 프로세스에서 실행되는 경우가 더 이상 작동하지 않습니다 (나는 과정을 의미 VS2017 devenv 프로세스가 아닙니다) 그리고 이것이 우리가해야 할 일입니다.

이상적으로 이것은 VS setup API에서 수행 할 수 있지만 샘플 코드를 찾을 수 없습니다. 그렇지

VS 2017 breaking change article에 설명 된대로 우리가 여전히 RegLoadAppKey() 기능에 의존 할 수

(코드 환영합니다) 아니면 그렇게 할 수있는 또 다른 API가? 당신의 도움에 대한

감사합니다,

답변

4

권장되는 방법은 VS에게 2017 설정에 액세스하기 위해 사용하는 것입니다 External Settings Manager :

ExternalSettingsManager ext = ExternalSettingsManager.CreateForApplication(@"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe"); 
SettingsStore store = ext.GetReadOnlySettingsStore(SettingsScope.UserSettings); 
foreach (string name in store.GetPropertyNames(@"MRUItems\{a9c4a31f-f9cb-47a9-abc0-49ce82d0b3ac}\Items")) 
{ 
    string value = store.GetString(@"MRUItems\{a9c4a31f-f9cb-47a9-abc0-49ce82d0b3ac}\Items", name); 
    Console.WriteLine("Property name: {0}, value: {1}", name, value); 
} 

당신이 Microsoft.VisualStudio에 대한 참조를 추가 할 필요가 외부 설정 관리자를 사용하려면 .Settings.15.0.dll을 프로젝트에 추가하십시오.

+0

대단히 감사합니다. Radames for this code and response. –