如何从Visual Studio 2012获取已安装应用程序的文件夹路径

时间:2014-05-15 14:35:54

标签: c# wpf visual-studio-2012 directory installation

您好我在PC上创建了2个WPF应用程序。让我们假设首先是" OneApp"另一个是" TwoApp"。我在Visual Studio 2012中创建了这个。我已经从安装程序安装了OneApp。现在我想运行" OneApp" by" TwoApp"应用程序编程。那么我怎样才能找到" OneApp"的路径?应用?或者,如果我们可以设置" OneApp"手动安装目录,那也很棒。

修改

我按照建议尝试了System.IO.Path.GetDirectoryName。但我得到文件夹路径如下

enter image description here

我不能像其他普通应用程序一样安装在Program Files中吗?

3 个答案:

答案 0 :(得分:3)

您通常可以询问Assembly硬盘上的位置。这应该给你一个以C:\开头的路径(如果它明显在C盘上)...试试这个:

Assembly assembly = Assembly.GetExecutingAssembly();
Uri uri = new Uri(Path.GetDirectoryName(assembly.CodeBase));

在我的开发环境(Visual Studio)中,这给了我:

  

C:/ DevelopmentProjects / AppName的/项目名/ bin中/调试

例如。它是组件运行的地方。在已安装的应用程序上,它应该告诉您程序集的运行位置。

答案 1 :(得分:1)

<{1>}中的

是:

wifomrs

然而,对于 Application.StartupPath 来说,情况并非如此,你看起来像是:

添加System.IO参考:

wpf

using System.IO;

string baseDir=  System.AppDomain.CurrentDomain.BaseDirectory

答案 2 :(得分:0)

毕竟点击试试方法。我刚刚在博客中找到了解决此问题的更好解决方案。链接是

http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/

我的代码是获取应用程序:首先获取该应用程序的快捷方式,然后打开该快捷方式将正常工作。您还可以看到如何将数据发送到上述链接中的其他应用程序。

StringBuilder sb = new StringBuilder();
sb.Append(Environment.GetFolderPath(Environment.SpecialFolder.Programs));
sb.Append("\\");
//publisher name is OneApp
sb.Append("OneApp");
sb.Append("\\");
//product name is OneApp
sb.Append("OneApp.appref-ms");
string shortcutPath = sb.ToString();
Console.WriteLine(shortcutPath);

//Start the One App installed application from shortcut
System.Diagnostics.Process.Start(shortcutPath);