问题描述
我编写了Visual Studio扩展(Vsix)。
到目前为止我所做的:
我需要找到exe的当前正在运行的外部项目路径。
我的代码:
private void Execute(object sender,EventArgs e)
{
ThreadHelper.ThrowIfNotOnUIThread();
// This runs my external console application
dte.solution.solutionBuild.Run();
Path.GetDirectoryName(dte.solution.FullName);
Project prj = dte.solution.Projects.Item(1);
string msg2,msg3 = "";
msg2 = prj.DTE.FullName;
msg3 = prj.DTE.FileName;
}
当前运行应用程序的项目是 devenv.exe ,因此:
Path.GetDirectoryName(dte.solution.FullName)= “ D:\ user \ proj \ projName \ Docs \ App \ AppName”
我需要exe的路径。
msg2,msg3 = “ D:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ Common7 \ IDE \ devenv.exe”
您有什么提示吗?
解决方法
也许您可以使用ProcessModule.ModuleName来获取当前进程的完整路径。
我用菜单命令创建一个Visual Studio扩展,并将此代码添加到Execute方法中
private void Execute(object sender,EventArgs e)
{
ThreadHelper.ThrowIfNotOnUIThread();
string message = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
string title = "Command1";
...
}
结果: