7

VS2008 Express で構築されたアプリケーションをデプロイしようとしています。ファイルを Web サーバーにアップロードし (Web サイト経由でインストール)、同時にインターネット接続を持たない一部のユーザーにオフライン (CD) インストールを提供するという考え方です。

公開オプションでは、Installation Folder URL空白のままにして、オプションThe application should check for updatesのチェックを外し(更新チェックを手動で処理しているため)、オプションを入力しましたUpdate location (if different than publish location)

オフライン インストールをテストしようとすると、アプリケーションをインストールできません。「アプリケーションのダウンロードに失敗しました。ネットワーク接続を確認してください...」というエラーが表示され、[詳細] ボタンを押すと、次のエラーが表示されます。

  • C:\Install\myapp.application をアクティブ化すると、例外が発生しました。次の障害メッセージが検出されました:
    • http://myserver.com/myapp.applicationをダウンロード できませんでした。
    • リモートサーバーに接続できません
    • 到達不能なネットワーク 195.42.142.11:80 に対してソケット操作が試行されました

すべてのファイルが存在するにもかかわらず、インストールがインターネットからファイルをダウンロードしようとするのはなぜですか?

最後に、からサーバー URL を削除するとUpdate location、すべてが正常に行われます。アプリケーションを更新する必要があるたびに、2 つの異なるセットアップを作成する必要がありますか? それとも別の解決策がありますか?


編集

さらにテストを行った結果、Windows XP ではオフライン インストールが正常に機能することが証明されましたが、Windows 7 では機能しません。後者の場合、同じインストール ファイルを使用して、インストーラーはローカル ファイルを使用する代わりに、インターネットからアプリケーションをダウンロードしようとします。ファイルを展開します。

ClickOnce の専門家がいない場合

4

2 に答える 2

5

ClickOnceランナーは、ファイルが既にローカルに存在するかどうかに関係なく、指定されたURLへの接続を試みます。CDとWebベースの両方の展開をサポートするには、2つのビルド構成が必要です。これは、 Microsoftのドキュメントからの関連情報です。

Visual Studioでこの展開戦略を有効にするには、発行ウィザードの[インストール方法]ページで[CD-ROMまたはDVD-ROMから]をクリックします。

このデプロイメント戦略を手動で有効にするには、デプロイメントマニフェストのdeploymentProviderタグを変更して、値が空白になるようにします。Visual Studioでは、このプロパティはProjectDesignerの[公開]ページにインストールURLとして公開されます。Mage.exeでは、開始場所です。

これは自動的に行うことができるため、プロジェクト設定を毎回手動で編集する必要はありません(また、クライアントの更新を妨げる小さな間違いを犯すリスクもあります)。残念ながら、プロジェクトのClickOnce設定は標準のビルド構成によって制御されていないように見えるため、プロジェクトファイル(MSBuildスクリプトでもあります)を手動で編集するか、任意のツールで別のビルドスクリプトを実行する必要があります。使用する。

オーバーライドする必要がある値はInstallUrlです。CD-ROMインストールビルドでは空白にする必要があります。次に、ビルドで両方の構成をビルドする必要があります。このサイトには、その方法を説明した例がたくさんあります。

于 2009-11-09T08:24:10.977 に答える
2

VS2015 で最近のプロジェクトのアプリケーションを公開していたことを除いて、似たような問題がありました。私の公開設定は次のとおりです。

  • ユーザーがアプリケーションをインストールする方法 - 「CD-ROM または DVD-ROM から」
  • アプリケーションはアップデートをチェックしません

これを開発マシン (例: mymachine01) から公開すると、Setup.exe と一緒にバンドルされる .application ファイルには、常に次のような行が含まれます。

<deploymentProvider codebase="http://mymachine01/Application20Name/Application20Name.application" />

それを圧縮して別のマシンにドロップしてインストーラーをテストすると、Application cannot be started. Contact the application vendor.エラーが発生しました。詳細ボタンをクリックするとThe remote name could not be resolved、アプリがアクセスしようとしていたエラーが表示されますmymachine01。それを修正するために、次の手順を使用しました。

  1. VS でプロジェクトを右クリックし、プロパティを選択します。
  2. [公開] タブに移動
  3. 「オプション」をクリック
  4. 「マニフェスト」を選択
  5. 「展開プロバイダーの URL を除外する」にチェックを入れる
于 2015-11-24T16:17:24.943 に答える