Даже я искал решение, чтобы получить имя проекта на основе имени документа или файла. Я нашел это с помощью объекта dte.
Инициализировал объект dte, как показано ниже.
EnvDTE80.DTE2 objDTE = this.GetService(typeof(SDTE)) as EnvDTE80.DTE2;
Затем использовал следующий код для получения имени проекта.
var projectItem = objDTE.Solution.FindProjectItem(document);
var projectUniqueName = projectItem.ContainingProject.UniqueName;