02.vs插件 获取项目和解决方案路径

获取项目 解决方案路径

   /// <summary>
    /// 获取并设置项目和解决方案绝对路径
    /// </summary>
    /// <returns></returns>
    protected void GetSetPath()
    {
        var dte2 = Package.GetGlobalService(typeof(DTE)) as DTE2;
        var solution = dte2.Solution;
        //var projects = solution.Projects;

        var projects = (UIHierarchyItem[])dte2?.ToolWindows.SolutionExplorer.SelectedItems;
        var project = projects[0].Object as Project;


        var SolutionName = Path.GetFileName(solution.FullName);//解决方案名称
        var SolutionDir = Path.GetDirectoryName(solution.FullName);//解决方案路径
        var ProjectName = Path.GetFileName(project.FullName);//项目名称
        var ProjectDir = Path.GetDirectoryName(project.FullName);//项目路径
    }
    var dte2 = this.Dte2;

    var solution = dte2.Solution;
    //var projects = solution.Projects;

    var projects = (UIHierarchyItem[])dte2?.ToolWindows.SolutionExplorer.SelectedItems;
    var project = projects[0].Object as Project;

    //获取项目所有引用
    var vsproject = project.Object as VSLangProj.VSProject;
    foreach (VSLangProj.Reference reference in vsproject.References)
    {
        if (reference.SourceProject == null)
        {
            // This is an assembly reference
            var fullName = GetFullName(reference);
            var assemblyName = new AssemblyName(fullName);
        }
        else
        {
            // This is a project reference
        }
    }

    this.Parameter.SolutionName = Path.GetFileName(solution.FullName);
    this.Parameter.SolutionDir = Path.GetDirectoryName(solution.FullName);
    this.Parameter.ProjectName = Path.GetFileName(project.FullName);
    this.Parameter.ProjectDir = Path.GetDirectoryName(project.FullName);

弹窗提示

   /// <summary>
    /// 警告
    /// </summary>
    /// <param name="body"></param>
    protected void ShowMessageBox(string body, string title = "警告")
    {
        System.Windows.Forms.MessageBox.Show(body, title, System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning);
    }
原文地址:https://www.cnblogs.com/shuyu/p/10842873.html