在Visual Studio Addin中获取损坏引用的路径

时间:2016-11-27 10:56:32

标签: c# visual-studio-extensions visual-studio-addins envdte

我正在开发一个visual studio扩展包。 我需要能够检索已损坏的引用的引用路径(已删除引用文件的引用)

我找不到使用EnvDTE项目的方法。 当我用EnvDTE获得参考时

Reference.Path

破坏的参考路径将是:“”(如您可以通过引用属性在VS UI中查看,也可以在路径中查看)

我需要一种获取Dll路径的方法,因为它保存在.csproj文件中, 有没有办法在visual studio扩展中做到这一点??

(我知道如何使用Microsoft.Build(加载项目并获取引用的Dlls),但是当我在VS插件中工作时使用此方法看起来很奇怪)

2 个答案:

答案 0 :(得分:1)

我只使用Microsoft.Build。 c#项目被加载到全局集合中。

答案 1 :(得分: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);
            }