2

アプリケーションのバージョン 2.0 をデプロイし、約 3000 人のユーザーがすでにアプリケーションを実行しているとします。

これまでのところ、アプリケーションは署名されていません (VS から自動生成された証明書によって署名されています)。

ユーザーは .NET 2.0 を使用しています。

次に、tucows からの証明書を使用して署名される新しいバージョンをデプロイします。以下の回答の 1 つは、.NET Framework 2.0 をターゲットにしている場合、コード署名証明書を変更するとアプリケーションの ID が「壊れる」ことを示しています。これは何を意味するのでしょうか?

新しいコード署名証明書を既存の展開に追加するにはどうすればよいですか?

アプリケーションを最初から (または新しい URL から) 再インストールするようにすべてのユーザーに通知することはできません。

(編集:これは以前の要件であり、現在は無効です:

私は、既存のユーザーがアップデートをまったく見ることができないようにしたいと思います (新しいバージョンが利用可能であるという通知を受け取るべきではありません)。一方、すべての新規ユーザーは、初めてインストールするときに署名付きバージョンを受け取ります。 . 展開に署名するだけで、既存のユーザーを煩わせる理由にはなりません。)

4

3 に答える 3

1

問題を詳細に説明している優れた投稿を見つけました。

これは、一時証明書から信頼できる証明書プロバイダーへの証明書の変更と、期限切れの証明書の両方に適用されます。

次のエラーが表示される場合があります。 + 展開 ID がサブスクリプションと一致しません。

解決策は、.NET 2.0 ユーザーが clickonce アプリケーション全体を再インストールできるようにすることでもありますが、これは実現不可能です。別の解決策は、前提条件として .NET 3.5 SP1 をプッシュすることです。これはとにかく再インストールをトリガーし、大量のダウンロードになります。

リンク: http://social.msdn.microsoft.com/Forums/en/winformssetup/thread/1217520d-6dc4-4fb1-83d1-0fa148d60e5d

.NET 2.0 の場合にアプリを壊すということは、既存のユーザーが更新プログラムをインストールするときにエラーが発生するか、更新プログラムがまったく表示されないことを意味します。

.NET 2.0 ユーザー向けにアプリケーションを修正できるソース コードを含む投稿へのリンク: http://robindotnet.wordpress.com/2009/03/30/clickonce-and-expiring-certificates/

更新プロセスは、期限切れの証明書と同じキーを持つ証明書を使用して中間更新に再署名し、アプリケーションをアンインストールする中間更新を公開し、新しいバージョンを強制的にインストールすることにあります。

非常に痛いです!

于 2009-10-16T10:26:15.427 に答える
0

カイルが言ったように、気をつければうまくいく。(そしてもちろん、まったく同じバージョンを公開します)

警告: 既存のユーザーは、少なくとも .NET 3.0 SP2 または .NET 3.5 SP1 を持っている必要があります。

理由: これ以前は、署名はアプリの ID の一部と見なされていたため、署名を変更すると、インストールされているユーザー ベースのアプリが壊れていました。

ただし、これらのことを自分で試してみてください。自分のマシンの共有に公開し続け、リリース間で署名などを試すだけのミニプロジェクトで簡単に実行できます.

于 2009-10-09T06:55:46.733 に答える
0

はい、これは 100% 動作します。もちろん、プログラムが再度ダウンロードされると、新しい署名が有効になります。ただし、署名は、プログラムがダウンロード/更新された場合にのみ、現在のバージョンのユーザーには影響しません。

自動更新がある場合、彼らはそれを取得しますが、これ既存のユーザーにバグを報告する理由です。これは、アプリケーションがあなたからのものであることを知っているため、アプリケーションがより安全になったことを示しているためです.

于 2009-10-05T12:29:41.400 に答える