我通过以下方式获取项目列表:
var solution = (IVsSolution)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(IVsSolution));
请参考以下链接了解更多详细信息:链接。
但是它给我返回的是解决方案中的每个项目,例如目录、项目等。我只需要项目。
如何从解决方案中仅获取项目?
我通过以下方式获取项目列表:
var solution = (IVsSolution)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(IVsSolution));
我尝试了并获得了预期的结果。 也许有其他更好的解决方案,但这对我来说确实有效。
var projects = CommonMethods.GetProjects(solution).Where(item => item.FullName != string.Empty).ToList();
对不起,我刚开始学习编程,所以我的解决方法可能不是最好的,但是我曾经遇到过同样的问题。
为了解决这个问题,我把解决方案中的所有项都解析成一个列表,然后检查它们的相对路径是否有后缀'.csproj'或其他我需要的项目类型,并将它们写入新的列表。也许这对你有帮助?