none
Click Onceの RRS feed

  • 質問

  • 初めまして。
    マツヤマと申します。

    Click Onceの仕様に関する質問です。

    プロジェクトメンバー内でClick Onceの仕様について疑問点があったのでこちらに投稿しました。

    Click Onceの仕様では、以下の2つのどちらに該当するのでしょうか?

    ------------------------------------------------------------------------------
    (情報1)
    配布者(今回の場合、tdi社員)がバージョンを変えた後に
    エンドユーザーがシステムを起動すると、
    更新したDLLだけでなく、全ファイルがダウンロードされる。

    (情報2)
    配布者(今回の場合、tdi社員)がバージョンを変えた後に
    エンドユーザーがシステムを起動すると、
    更新されたDLLだけがダウンロードされる。
    ------------------------------------------------------------------------------

    上記の違いが問題になっている理由は、Click Onceでのバージョンアップの時間をできる限り短くしたいというユーザーの要望があるからです。

    更新されたDLLだけをダウンロードするのであればDLLを細分化してサイズを小さくしたいのですが、全ファイルがダウンロードされるのであれば、DLLを細分化する必要はなくなるので、その真偽を知りたいと思っています。

    よろしくお願い致します。

     

    2006年5月30日 4:55

回答

  • 正式な.NET Framework 2.0の仕様では、

    ・更新された.DLLファイルだけダウンロードされます。
    ・更新されていない.DLLファイルは(前回ローカルにすでにダウンロードされたものが)ローカル内でコピーされます。
     →このためプログレスバーはメータが全ファイル分進んでいますが、すべてがダウンロードされているわけではありません(これはダウンロードされる内容をキャプチャすれば確認できます)。

    ClickOnceを設定した.exeファイルは発行する際にプロジェクトファイルが変更されるため、どうしても(何も変更していなくても)必ず配布されてしまします(この問題はClickOoceチームも認識済みのようです)。

    #日本語の資料ではこのあたりが正しく記述されているのがあまりないのですが……

    ここに明記されています。
    http://msdn2.microsoft.com/ja-JP/library/142dbbz4.aspx
    アプリケーションの更新における問題。Microsoft Windows インストーラによる配置では、アプリケーションが更新されるたびにアプリケーション全体を再インストールする必要があります。ClickOnce による配置では、更新を自動的に提供できます。アプリケーションの変更された部分だけがダウンロードされ、次に、更新されたアプリケーション全体が新しい side-by-side フォルダから再インストールされます。

    2006年6月1日 7:25

すべての返信

  • ClickOnceの場合は全部ダウンロードされます。
    DLLのバージョンの不整合を避ける目的もありますので。
    ソースは忘れてしまいましたが、今私が作っているものがそうなのでそうでしょう。
    個人的にはどっちであれできるだけ細かい単位にしておいた方が楽だと思います。
    2006年5月30日 7:02
  • mars12さん

    返信ありがとうございます。

    ちなみに、これに関する情報はMSのサイトのどこかに掲載されていたりしませんか?

    よろしくお願い致します。

    2006年5月30日 7:45
  • http://www.microsoft.com/japan/msdn/columns/realworld/realworld12012004.asp
    ですかね。
    わかりにくい言葉ですが、
    ClickOnceのところの
    「・更新が処理されます (つまり、更新が完全に完了するか、まったく更新されません)。」
    がそれにあたります。
    2006年5月31日 0:02
  • 正式な.NET Framework 2.0の仕様では、

    ・更新された.DLLファイルだけダウンロードされます。
    ・更新されていない.DLLファイルは(前回ローカルにすでにダウンロードされたものが)ローカル内でコピーされます。
     →このためプログレスバーはメータが全ファイル分進んでいますが、すべてがダウンロードされているわけではありません(これはダウンロードされる内容をキャプチャすれば確認できます)。

    ClickOnceを設定した.exeファイルは発行する際にプロジェクトファイルが変更されるため、どうしても(何も変更していなくても)必ず配布されてしまします(この問題はClickOoceチームも認識済みのようです)。

    #日本語の資料ではこのあたりが正しく記述されているのがあまりないのですが……

    ここに明記されています。
    http://msdn2.microsoft.com/ja-JP/library/142dbbz4.aspx
    アプリケーションの更新における問題。Microsoft Windows インストーラによる配置では、アプリケーションが更新されるたびにアプリケーション全体を再インストールする必要があります。ClickOnce による配置では、更新を自動的に提供できます。アプリケーションの変更された部分だけがダウンロードされ、次に、更新されたアプリケーション全体が新しい side-by-side フォルダから再インストールされます。

    2006年6月1日 7:25
  • 全部ダウンロードされるわけではないんですね。
    自分でも試してみました(横取り丸で)が、確かにexeと更新されたDLLだけでした。
    私があげたマイクロソフトの文書とダウンロードされたフォルダの内容を見て
    完全に間違えて考えていました。
    不勉強でした。

    マツヤマさん
    いいかげんな情報でもうしわけありませんでした。
    2006年6月1日 23:42
  • Masahiko Isshiki さん

    ありがとうございます。
    仕様を元にご回答いただきましたので、安心しました。

    2006年6月2日 1:51
  • mars12 さん

    わざわざ確認までしていただき、ありがとうございました。

     

    2006年6月2日 1:52