0

Visual Studio 확장 패키지 작업을하고 있습니다. 깨진 참조 (참조 된 파일이 제거 된 참조)의 참조 경로를 검색 할 수 있어야합니다.Visual Studio Addin에서 깨진 참조 경로 가져 오기

EnvDTE 프로젝트에서 찾을 수있는 방법을 찾을 수 없습니다. 내가 EnvDTE의 참조를 얻을 때

Reference.Path 

깨진 참조 경로가 될 것입니다 : ""(당신이 참조 속성을 통해 VS UI에서에서 볼 수있는 것처럼 어쩌면 예상대로 경로 될 것 "뿐만 아니라")

.csproj 파일에 저장 될 때 Dll 경로를 얻는 방법이 필요합니다. Visual Studio 확장 프로그램에서이 방법을 사용할 수 있습니까 ??

(I은 (Microsoft.Build이 작업을 수행하기 위해 참조하는 DLL을) 프로젝트를로드하고 얻는 방법을 알고 있지만, 내가 VS 추가 기능에서 일하고 있어요이 방법을 사용하는 나에게 이상한 모양)

답변

0

을 Xdocment를 사용하여이를 달성 할 수도 있습니다. 이렇게 :

string xmlPath = @"D:\Project\VSX\ConsoleApp\GetReferecePath\GetReferecePath.csproj"; 

      XNamespace msbuild = "http://schemas.microsoft.com/developer/msbuild/2003"; 
      XDocument projDefinition = XDocument.Load(xmlPath); 
      IEnumerable<string> references = projDefinition 
       .Element(msbuild + "Project") 
       .Elements(msbuild + "ItemGroup") 
       .Elements(msbuild + "Reference") 
       .Select(refElem => refElem.Value); 
      foreach (string reference in references) 
      { 
       Console.WriteLine(reference); 
      } 
1

나는 Microsoft.Build를 사용합니다. C# 프로젝트는 전역 컬렉션에로드됩니다.

관련 문제