您正在獲取該路徑,因爲它是ClickOnce使用的路徑。 ClickOnce應用程序安裝在安裝它們的用戶的配置文件下。
編輯:
方法1:
這裏有一個辦法讓你的程序是從(僅適用,如果安裝了您的應用程序)(這部分被寫入安裝路徑@codeConcussion):
// productName is name you assigned to your app in the
// Project properties -> Publish -> Publish Settings
public static string GetInstalledFromDir(string productName)
{
using (var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Uninstall"))
{
if (key != null)
{
var appKey = key.GetSubKeyNames().FirstOrDefault(x => GetValue(key, x, "DisplayName") == productName);
return appKey == null ? null : GetValue(key, appKey, "UrlUpdateInfo");
}
}
return null;
}
private static string GetValue(RegistryKey key, string app, string value)
{
using (var subKey = key.OpenSubKey(app))
{
if (subKey == null || !subKey.GetValueNames().Contains(value))
{
return null;
}
return subKey.GetValue(value).ToString();
}
}
下面是如何使用它:
Uri uri = new Uri(GetInstalledFromDir("ProductName"));
MessageBox.Show(Path.GetDirectoryName(HttpUtility.UrlDecode(uri.AbsolutePath)));
方法2:
你也可以嘗試
System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri
但我認爲,如果你的應用程序從
你想要的。應用文件的網絡安裝這一個工程只路徑? – t3hn00b