我正在开发一个visual studio扩展包。 我需要能够检索已损坏的引用的引用路径(已删除引用文件的引用)
我找不到使用EnvDTE项目的方法。 当我用EnvDTE获得参考时
Reference.Path
破坏的参考路径将是:“”(如您可以通过引用属性在VS UI中查看,也可以在路径中查看)
我需要一种获取Dll路径的方法,因为它保存在.csproj文件中, 有没有办法在visual studio扩展中做到这一点??
(我知道如何使用Microsoft.Build(加载项目并获取引用的Dlls),但是当我在VS插件中工作时使用此方法看起来很奇怪)
答案 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);
}