打开当前程序 OpenCurrentExe
2015-11-29 09:27:53 访问(2057) 赞(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 


上一条:
下一条:
相关评论
发表评论