0

Я работаю над расширением Visual Studio. Мне нужно иметь возможность получить ссылку ссылки на неработающую ссылку (ссылка, которую удалил ссылочный файл)Получить путь к неработающей ссылке в Visual Studio Addin

Я не мог найти способ сделать это с помощью проекта EnvDTE. , когда я получаю ссылку с EnvDTE

Reference.Path 

сломанный ссылка Путь будет: «» (как, возможно, ожидали, что вы можете просматривать в в VS UI с помощью ссылочных свойств, Путь будет «» а)

Мне нужен способ получить путь Dll, поскольку он сохраняется в файле .csproj, Есть ли способ сделать это в пределах визуального расширения студии?

(я знаю, как сделать это с Microsoft.Build (для загрузки проекта и получить ссылочный DLL), но это выглядит странно для меня, чтобы использовать этот метод, когда я работаю в VS) AddIn

ответ

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# загружаются в глобальную коллекцию.

 Смежные вопросы

  • Нет связанных вопросов^_^