打开当前程序 OpenCurrentExe

2015-11-29 09:27:53  访问(2056) 赞(0) 踩(0)


        #region 获得项目的输出 - E:\Projects\HomePage\Witch\SRC\Addin\SlowX\SlowXLib\bin\Debug\SlowXLib.dll

        /// <summary>
        /// 获得项目的输出
        /// GetProjFullOutput
        /// E:\Projects\HomePage\Witch\SRC\Addin\SlowX\SlowXLib\bin\Debug\SlowXLib.dll
        /// </summary>
        /// <param name="_applicationObject"></param>
        /// <returns></returns>
        public string ProjFullOutputGet(DTE2 _applicationObject)
        {
            return ProjFullOutputGet(null, _applicationObject);
        }

        /// <summary>
        /// 获得项目的输出
        /// GetProjFullOutput
        /// E:\Projects\HomePage\Witch\SRC\Addin\SlowX\SlowXLib\bin\Debug\SlowXLib.dll
        /// </summary>
        /// <param name="proj"></param>
        /// <returns></returns>
        public   string ProjFullOutputGet(EnvDTE.Project proj)
        {
            return ProjFullOutputGet(proj, null);
        }

        /// <summary>
        /// 获得项目的输出
        /// GetProjFullOutput
        /// E:\Projects\HomePage\Witch\SRC\Addin\SlowX\SlowXLib\bin\Debug\SlowXLib.dll
        /// </summary>
        /// <param name="proj"></param>
        /// <param name="_applicationObject"></param>
        /// <returns></returns>
        public   string ProjFullOutputGet(EnvDTE.Project proj, DTE2 _applicationObject)
        {
            if (proj == null)
                proj = ProjectCurGet(_applicationObject);

            if (proj == null)
                return null;


            SlowXAddin.Enums.VsProjType.EmVsProjType em
                = 
                EmVsProjTypeGet(proj);

            StringBuilder sb = new StringBuilder();
            string strItem = null;

            switch(em)

            {
                case SlowXAddin.Enums.VsProjType.EmVsProjType.DLL:
                case SlowXAddin.Enums.VsProjType.EmVsProjType.Exe:
                    
                    strItem = ProjFullPathGet(proj,_applicationObject);
                    sb.Append(strItem);

                    strItem = ProjOutputPathGet(proj,_applicationObject);
                    sb.Append(strItem);
                    
                    strItem = ProjOutputFileNameGet(proj);
                    sb.Append(strItem);

                    return sb.ToString();

                case SlowXAddin.Enums.VsProjType.EmVsProjType.Web:
                    return ProjFullPathGet(proj,_applicationObject);
                default:
                    
                    throw new Exception
                        (
                            "方法:"
                            + MethodBase.GetCurrentMethod().ReflectedType.FullName
                            + " "
                            + MethodBase.GetCurrentMethod().ToString()
                            + " 发生异常:"
                            + "枚举("
                            + em.GetType().FullName
                            + "."
                            + em.ToString()
                            + ")未知,对应的代码尚未实现。"
                        );

            }
        }

        #endregion 获得项目的输出 E:\Projects\HomePage\Witch\SRC\Addin\SlowX\SlowXLib\bin\Debug\SlowXLib.dll


        /// <summary>
        /// 打开当前程序
        /// </summary>
        /// <param name="_applicationObject"></param>
        /// <param name="_addInInstance"></param>
        public void OpenCurrentExe
            (
                DTE2 _applicationObject,
                AddIn _addInInstance
            )
        {
            string strOutput = ProjFullOutputGet(_applicationObject);

            if (strOutput == null || strOutput.Length == 0)
            {
                MessageBox.Show("没有有效的执行程序");
                return;
            }

            if (!strOutput.Trim().ToLower().EndsWith(".exe"))
            {
                MessageBox.Show(strOutput + "非exe执行程序");
                return;
            }

            System.Diagnostics.Process.Start(strOutput);
        }


标签:打开当前程序 OpenCurrentExe 

上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)