Получить путь к неработающей ссылке в надстройке Visual Studio

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

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

Reference.Path

неработающий эталонный путь будет: "" (как можно было ожидать, например, вы можете просмотреть в пользовательском интерфейсе VS через эталонные свойства, путь также будет "" )

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

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


person Efrat    schedule 27.11.2016    source источник


Ответы (2)


Я бы просто использовал Microsoft.Build. Проекты C# загружаются в глобальную коллекцию.

person jmoffatt    schedule 09.12.2016

Вы также можете использовать 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);
            }
person Zhanglong Wu - MSFT    schedule 28.11.2016