2009-04-01 15 views
2

私はC#アプリケーション(WinForms)(ClickOnce)のクラッシュするサーバーにリポジトリがインストールされているので、私の上司がリポジトリの移動を依頼しましたが、アプリケーションがインストールされているクライアントマシンは約300台あります。クライアントマシンに再インストールせずにClickOnceリポジトリを移動します。出来ますか?

ClickOnceは、Test Certificateで署名されています。

クライアントマシンに再インストールせずにリポジトリを移動することはできますか?事前に

おかげ

[EDIT]

私は新しいサーバーにアプリケーションを公開しているが、クライアントはそれに達しない

、私は他に何ができるのでしょうか?私はマニフェストや何かの中で何かを変えなければならないと思うが、実際にはClickOnceについてあまり気にしない...いずれの場合でも、私はすべてのクライアントマシン、アイデア、提案の再インストールを避けたいのですか?事前に感謝します

答えて

2

これは、同じ問題を抱えている可能性のある人たちのために私が行ったことです。

  • パブリッシュパッケージで新しいサーバーをセットアップします。 (プロジェクトプロパティ、パブリッシュタブ)
  • 新しいサーバーに公開
  • 公開されたファイルを古いサーバーにコピーします。 (.applicationファイルとフォルダを含める)

クライアントが古いサーバーに到達すると、更新されますが、サーバーの場所は新しいサーバー名に更新されます。

1

新しいサーバーにリダイレクトするようにDNSエイリアスを変更しようとする可能性があります。

コード署名証明書は、特定のリポジトリにバインドされていないので、コードが証明書を使用して署名したという事実は、関係ありません(SSL証明書ではなく)

ところで、あなたは再インストールしたくない理由? clickonceの全体のポイントは、この種のソフトウェア更新を簡単にすることです!

+0

しかし、実際にはリポジトリを移動する必要があります。移動は計画されています。サーバーは現在他のアプリケーションをホストしていますので、サーバーを制御できません。 –

+0

サーバがクラッシュしようとしている場合、同じDNS名を持つ新しいサーバで完全に置き換えてみませんか?あなたがその決定を下す立場にない場合は、リポジトリのURLを別のサーバにリダイレクトすることができます – Brann

+0

clickonceによる再インストールは通常自動的です。リポジトリのURLを変更すると、再インストールする必要がありますすべてのマシンで –

2

Jhonnyから提供された答えは私にとって有望なようでしたが、試してみるとエラーに遭遇しましたが、解決しなければなりませんでした。それは証明書と関係していました。

彼の設定に従って、クライアントマシンでClickOnceアプリケーションを起動すると、「アプリケーションを起動できません」というエラーダイアログが表示されます。

エラーダイアログの[詳細...]ボタンをクリックすると、開いているテキストファイルに、新しいサーバーのデプロイメントプロバイダURLから更新しようとしていることが表示されますが、このエラーが表示されます。

"展開IDがサブスクリプションと一致しません。

問題は、古いサーバーのアプリケーションを公開するために使用された証明書が期限切れであったため、新しいサーバーに公開されたアプリケーションで証明書を更新していました。証明書が一致しませんでした。

解決策は、新しい証明書を使用して古いサーバーにアプリケーションを公開し、ユーザーにそのアプリケーションを開いてその更新プログラムを入手させてから、新しいサーバーの展開URLを使って別の新しいバージョンを公開し、両方のサーバーに送信します。ユーザーが次回に更新すると、マニフェストが新しいサーバーを指している古いサーバーからアプリケーションのバージョンが取得され、すべてのサブシーケンス更新が新しいサーバーから取得されました。

関連する問題