2012-04-17 41 views
3

ユーザーは、スタートメニュー/デスクトップショートカットからClickOnce WPFアプリケーションを実行します。最初にダウンロードされたURLを取得する必要があるたびにアプリケーションが起動します。私はActivationUriを使用してみましたが、それはウェブサイトのsetup.exeではなく、デスクトップ/スタートメニューのショートカットから直接実行されたとき、これはのみ動作します:ClickOnceアプリケーションをスタートメニューから実行すると、最初にダウンロードされたURLが取得されます

(ウェブサイトから)セットアップから実行
string activationUri = "???"; 
try 
{ 
    if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment == null) 
    { 
     activationUri = "currentDeployment is null"; 
    } 
    else if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri == null) 
    { 
     activationUri = "deployment not null but uri is"; 
    } 
    else if (System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri != null) 
    { 
     activationUri = 
      System.Deployment.Application.ApplicationDeployment.CurrentDeployment.ActivationUri.AbsoluteUri; 
    } 
} 
catch (Exception ex) 
{ 
    activationUri = ex.Message; 
    //Error getting the URL so put question mark 
} 

MessageBox.Show(activationUri); 

私はなるだろうURL、および私は "展開がnullではなく、URIは"となるたびに。

答えて

1

お試しApplicationDeployment.UpdateLocationプロパティです。 Visual StudioでProject Properties - > Publish - > Updates - > Update Locationで異なるアップデートURLを設定していない限り、元のデプロイメントURLが返されます。

+0

素晴らしい..私は時間の制約のために私はファイルソリューションに書いていましたが、このオプションをもっと好んでいます。私は今日チャンスを得るときにそれを試してみるでしょう。 – Jon

1

アプリケーションをダウンロードして初めて実行したときにURIをどこかに保存してから、アプリケーションがオフラインで実行されたときにこの値を参照するだけで済みます。

+0

私はこの考えを最近また持ち、より洗練されたソリューションを望んでいましたが、これが実現すると思います。 – Jon

7
ApplicationDeployment.CurrentDeployment.ActivationUri 

あなたが公開マニフェストオプションにチェックボックス「は、URLのパラメータは、アプリケーションに渡すことができ、」アクティブ場合はnullではありません。

ApplicationDeployment.CurrentDeployment.UpdateLocationを使用してください。

関連する問題