0

ClickOnceがファイルを比較する方法と、それらのファイルを検索する方法を確認する方法に問題があります。ClickOnceアプリケーションをサーバーに接続しますが、これは内部的に行われますか?

4

2 に答える 2

0

ClickOnceアプリケーションの公開MSDN )には、必要なものがすべて揃っています。

方法から:ClickOnce配置APIを使用してプログラムでアプリケーションの更新を確認する

  1. 好みのコマンドラインツールまたはビジュアルツールを使用して、新しいWindowsフォームアプリケーションを作成します。
  2. ユーザーが更新を確認するために選択するボタン、メニュー項目、またはその他のユーザーインターフェイス項目を作成します。そのアイテムのイベントハンドラーから、次のメソッドを呼び出して、更新を確認してインストールします。
private void InstallUpdateSyncWithInfo()
{
    UpdateCheckInfo info = null;

    if (ApplicationDeployment.IsNetworkDeployed)
    {
        ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

        try
        {
            info = ad.CheckForDetailedUpdate();

        }
        catch (DeploymentDownloadException dde)
        {
            MessageBox.Show("The new version of the application cannot be downloaded at this time. \n\nPlease check your network connection, or try again later. Error: " + dde.Message);
            return;
        }
        catch (InvalidDeploymentException ide)
        {
            MessageBox.Show("Cannot check for a new version of the application. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message);
            return;
        }
        catch (InvalidOperationException ioe)
        {
            MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " + ioe.Message);
            return;
        }

        if (info.UpdateAvailable)
        {
            Boolean doUpdate = true;

            if (!info.IsUpdateRequired)
            {
                DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel);
                if (!(DialogResult.OK == dr))
                {
                    doUpdate = false;
                }
            }
            else
            {
                // Display a message that the app MUST reboot. Display the minimum required version.
                MessageBox.Show("This application has detected a mandatory update from your current " + 
                    "version to version " + info.MinimumRequiredVersion.ToString() + 
                    ". The application will now install the update and restart.", 
                    "Update Available", MessageBoxButtons.OK, 
                    MessageBoxIcon.Information);
            }

            if (doUpdate)
            {
                try
                {
                    ad.Update();
                    MessageBox.Show("The application has been upgraded, and will now restart.");
                    Application.Restart();
                }
                catch (DeploymentDownloadException dde)
                {
                    MessageBox.Show("Cannot install the latest version of the application. \n\nPlease check your network connection, or try again later. Error: " + dde);
                    return;
                }
            }
        }
    }
}
于 2013-03-15T19:55:40.037 に答える
0

プログラムによる更新を行わない場合は、[更新]ダイアログで[実行する前に更新を確認する]を設定します([公開]画面で[更新]をクリックします)。次に、新しいバージョンを公開すると、元の展開と同じフォルダーに配置されます。ユーザーがアプリケーションを実行すると、更新があるかどうかが確認され、インストールするかどうかが尋ねられます。その時点で、ユーザーはそれをスキップするか、更新を受け入れることができます。

(更新ダイアログで)最小バージョンをデプロイしているバージョンと同じにすると、彼に尋ねることはなく、アプリケーションを更新するだけです。

彼が更新をスキップした場合、もしあったとしても、彼は数週間それを再び見ることはありません。Microsoftは2週間と言っていますが、それが再び現れるとは確信していません。そのため、次の更新まで待つか、新しい更新を手動でインストールする必要があるかもしれません。

于 2013-04-07T01:22:54.950 に答える