ClickOnce展開パッケージを移動する方法
質問
ネットワークドライブの発行フォルダーにClickOnceパッケージのコレクションがあり、それらすべてを別のサーバー(DRマシン)に移動する必要があります。
ディレクトリ全体をコピー/貼り付けし、新しいマシンでセットアップを実行すると、古いパスが見つからないというエラーメッセージが表示されます。
のアクティベーション ... MyClickOnceApp.applicationの結果 例外的に。次の失敗 メッセージが検出されました:
+ file://oldMachine/c$/MyClickOnceApp.applicationのダウンロードが成功しませんでした。
+パス '\\ oldMachine \ c $ \ MyClickOnceApp.application'の一部が見つかりませんでした。
インストールを変更すると、 URL が新しいマシンを指すようになり、別のエラーが発生します:
マニフェストXML署名は無効です。
+オブジェクトのデジタル署名が検証されませんでした。
MageUI.exe を使用して変更しようとしましたデプロイメントURLですが、証明書を要求しますが、証明書は持っていません。
間違っていることと、公開されたClickOnceパッケージを正常に移動するにはどうすればよいですか
解決
解決策を見つけました:
まず、MageUIを使用して、「開始場所」を変更しました。 「展開オプション」の下。保存時に、そこで作成したキーで署名するように促されました。次に setup.exe
ファイルを実行しましたが、それは間違いなく機能しました。
どのファイルが変更されたかを確認したところ、アプリケーションマニフェストファイル( myAppName.application
)のみであることがわかりました。ファイル内で変更されたのは、 デプロイメントプロバイダー と 署名 (これは私が変更したものです) MageUI)。
これがその方法であることに気付いたら、SDKに付属する Mage.exe
というMageUIのコマンドラインバージョンを使用しました。
以下は、これらすべてをコマンドラインで実行するために作成したバッチファイルです。
REM環境の設定
を呼び出します
" C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ vcvarsall.bat"REM展開プロバイダーのURLを更新する
mage-%1.application -pu%2を更新REMキーを使用してマニフェストに署名します
mage -Sign%1.application -CertFile C:\ AppKey.pfx -Password myPw
これを使用して、公開されたすべてのアプリケーションに対してすばやく簡単に実行できます。これがお役に立てば幸いです。
他のヒント
詳細を詳しく説明しなくても、これでうまくいくはずです。
ClickOnceマニフェストは、セキュリティ上の理由から証明書で署名する必要があります。コード署名証明書を購入するか、テスト証明書を生成できます。テスト証明書の主な欠点は、アプリケーションの発行元が「不明」と表示されることです。会社名ではなく。
Visual Studioでプロジェクトのプロパティを開き、「署名」に移動します。タブで、「ClickOnceマニフェストに署名する」および「テスト証明書を作成する」を選択します。次に、[詳細]をクリックします。ダイアログを表示して[証明書のインストール]をクリックします。これにより、ウィザードが実行され、ストアでテスト証明書が取得されます。必ず「個人」に入れてください。ストア。
MageUIを使用してマニフェストを編集できるようになりました。保存するたびにマニフェストに署名するように求められますが、保存したばかりのテスト証明書を選択できるようになります。展開マニフェストを編集/署名する前に、常にアプリケーションマニフェストを編集/署名してください。これは、アプリケーションマニフェストが .application 拡張子を持つファイルではないため、混乱を招きます。
がんばって!
次のことを行う必要があると予想されます。
- 現在のフォルダーの内容を新しい場所にコピーする
- 各アプリについて:-
- 「インストールフォルダ」を新しい場所に変更します
- 新しいバージョンとして公開
- 「公開フォルダ」を新しい場所に変更します
- 新しいバージョンとして公開
新しいフォルダーから実行される新しいセットアップが機能し、既存のセットアップが更新されて正しい場所が表示されるはずです。
これはすべてテストされていませんが、それが以前にやったことだと確信しています...
編集:
明らかに、これらを一定時間並行して実行する必要がありますが、内部アプリであるため、最終的に新しい場所に切り替えるときに起こる最悪の事態は、通知する必要があることです「固定」アプリを取得する新しい場所のユーザー
あなたは証明書を持っていると信じています。 ClickOnceデプロイメントを作成するには1つ必要です。 Visual Studioが自己署名を自動作成している場合があります。私はこのプロセスにあまり詳しくありません。より決定的な答えを持っている人がチップを入れてくれることを期待しています。また、MageUIツールを試してみました。