C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Application Updater Component の動作について


(過去ログ 1 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■504 / inTopicNo.1)  Application Updater Component の動作について
  
□投稿者/ ken 伍長(10回)-(2005/06/05(Sun) 00:05:22)

分類:[.NET 全般] 


分類:[.NET 全般] 

こんにちは。kenです。

皆さんの中でApplication Updater Componentって使用されていますか?

このコンポーネント、公開されている文献とおりやっても、エラーが
出てしまうのです。

ちなみに更新はうまくいきますが、リソースファイルがないとなって
結果的にエラーが出てしまいます。

ちなみに文献はこちら。

[たつごろーさんとこ]
http://www.codeseek.net/dotNet/dotNetAppUpdater.htm

[英語]
http://windowsforms.net/articles/appupdater.aspx

確かに更新はできますが、
Unnable to auto-download the missing parts of the application from:
http//localhost/SampleApp_ServerSetup/2.0.0.0/mscorib.resource.dll
Make sure your connected to the network. If the problem persists re-install the application.

という内容のエラーメッセージが表示されます。
でもそのエラーメッセージを閉じたあとに自動更新されます。

どなたかこの状態を回避する方法をご存知でしたらご教授ください。

ちなみに、
ダミーファイルを置く方法は試してみて、効果があるのは
わかりましたが、できれば使用したくないので、できる限り
根本的な解決法を希望しております。

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


0
引用返信 編集キー/
■507 / inTopicNo.2)  Re[1]: Application Updater Component の動作について
□投稿者/ tatsugoro 二等兵(1回)-(2005/06/06(Mon) 11:53:37)
tatsugoro さんの Web サイト

分類:[.NET 全般] 

このエラーは私のところでも出ています。
本家サイトでもでているそうです。
完全な調査はしていないのですが、このリソースファイルは不要だと思われますので、エラーメッセージを表示しているところでこのリソースが原因だとわかったら表示を抑止しています。


0
引用返信 編集キー/
■508 / inTopicNo.3)  Re[2]: Application Updater Component の動作について
□投稿者/ ken 伍長(11回)-(2005/06/06(Mon) 13:24:11)

分類:[.NET 全般] 

こんにちは。

> このエラーは私のところでも出ています。
> 本家サイトでもでているそうです。
> 完全な調査はしていないのですが、このリソースファイルは不要だと思われますので、エラーメッセージを表示しているところでこのリソースが原因だとわかったら表示を抑止しています。
>

そうですか。本家でもでているのですか。。。

あと、すいませんがもうひとつわかればご教授頂きたいのですが、
他の掲示板でもよく書かれている内容で、<アセンブリ名>.resources.dllが
ないというエラーの時もあるのですが、

エラー内容としては、以下のようにでます。

Unnable to auto-download the missing parts of the application from:
http//localhost/SampleApp_ServerSetup/2.0.0.0/<アセンブリ名>.resource.dll
Make sure your connected to the network. If the problem persists re-install the application

まったくそのようなリソースは使用していないし、そのプログラムは
IDE環境からフォームの背景に画像を指定しているぐらいです。
(この場合、デザイナリソースと言われて、そのアセンブリに勝手に
埋め込まれるのですよね?)

にも関わらず、Updater Component はダウンロードしようとして、エラーを
出しているようです。
この問題に関してはご存知ないでしょうか?

もしご存知でしたら、ご教授お願い致します。



0
引用返信 編集キー/
■509 / inTopicNo.4)  Re[3]: Application Updater Component の動作について
□投稿者/ ken 伍長(12回)-(2005/06/06(Mon) 13:59:12)

分類:[.NET 全般] 

すいません。お礼の言葉を忘れていました。

改めて、tatsugoroさん、有益な情報ありがとうございます。

まさか、参考資料サイトの管理者の方に返信頂けるとは思いません
でした。

もし宜しければ、また質問させてください。

本当にありがとうございます。

0
引用返信 編集キー/
■522 / inTopicNo.5)  Re[4]: Application Updater Component の動作について
□投稿者/ キタ 二等兵(1回)-(2005/06/06(Mon) 18:36:33)

分類:[.NET 全般] 

2005/06/07(Tue) 17:56:10 編集(投稿者)
2005/06/06(Mon) 19:18:57 編集(投稿者)
2005/06/06(Mon) 18:45:21 編集(投稿者)
2005/06/06(Mon) 18:39:22 編集(投稿者)

#追記:余計なコードまで書いた上間違ってましたので修正しました。
以下のようなコードで出来ませんか?


private void Form_Load(object sender, EventArgs e){
//appUpdaterをインスタンス化
updater = new Microsoft.Samples.AppUpdater.AppUpdater();


//オンデマンドインストール機能を無効にする。
updater.AutoFileLoad = false;
updater.ChangeDetectionMode = ChangeDetectionMode.ServerManifestCheck;

//appUpdater初期化
updater.Initialize();

}


ソース見ましたが、
サテライトアセンブリを探す処理は、ChangeDetectionModeプロパティがDirectFileCheck, 及びAutoFileLoadプロパティがtrueの場合起こるようです。
なので、両プロパティを上記のように設定することによってこの問題は避けられるんでないかと思います。
ChangeDetectionModeがDirectFileCheckの場合の回避方法は私もわかりません。既存のソースのままでは恐らく無理かと。



0
引用返信 編集キー/
■525 / inTopicNo.6)  Re[5]: Application Updater Component の動作について
□投稿者/ ken 伍長(13回)-(2005/06/06(Mon) 20:56:55)

分類:[.NET 全般] 

こんにちは。

下記のように、懇切丁寧にご教授くださって本当にありがとうございます!!

> 以下のようなコードで出来ませんか?
>
> private void Form_Load(object sender, EventArgs e){
> //appUpdaterをインスタンス化
> updater = new Microsoft.Samples.AppUpdater.AppUpdater();
>
> updater.OnUpdateDetected +=new Microsoft.Samples.AppUpdater.AppUpdater.UpdateDetectedEventHandler(updater_OnUpdateDetected);
>
> //※1
> updater.AutoFileLoad = false;
> updater.ChangeDetectionMode = ChangeDetectionMode.ServerManifestCheck;
>
> //appUpdater初期化
> updater.Initialize();
>
> }
>
> //更新検知時のイベントハンドラ
> private void updater_OnUpdateDetected(object sender, EventArgs e)
> {
> //明示的にダウンロード開始
> this.updater.DownloadUpdate();
> }
>
>
>
> ソース見ましたが、
> サテライトアセンブリを探す処理は、ChangeDetectionModeプロパティがDirectFileCheck, 及びAutoFileLoadプロパティがtrueの場合起こるようです。
> なので、両プロパティを上記のように設定することによってこの問題は避けられるんでないかと思います。
> ChangeDetectionModeがDirectFileCheckの場合の回避方法は私もわかりません。既存のソースのままでは恐らく無理かと。

少し引用するには長いかと思いましたが、ちょっと話の中であったほうがいいと
思いましたので、そのまま引用します。

私が思う標題の回避方法としては、上記のソースから判断するに、
「アセンブリを探し出してダウンロードしようとするロジック自体を
使わない(通らない)ようにする」という認識でよろしいのでしょうか?

いろいろなページを見てきて、この現象に対する回避策は、
@ ダミーファイルで逃げる。
A アセンブリのオンデマンドインストール機能を使用しない。

という回答がほとんどであったと認識しています。

上記のソースは、Aのロジックを通らないようにする方法で宜しいですか?

すいません。頂いた返信をどうこういうのではなく、

今後このコンポーネントを使おうという方々に、きっと判断に役立つ結論、

「Application Updater Component のオンデマンドインストールは使用できるのか
否か」をはっきり(現時点での調査結果から)させておくことが
今後の展開に影響すると考えます。

上記で返信頂いたソースでは、本当に(語弊はありますが)リソース.dllを
使用していた場合は、Application Updater Componentの
オンデマンドインストール機能ではなく、他の方法でダウンロードする必要が
ありますよね?(間違ってたらすいません。)



0
引用返信 編集キー/
■526 / inTopicNo.7)  Re[6]: Application Updater Component の動作について
□投稿者/ キタ 二等兵(2回)-(2005/06/07(Tue) 00:23:56)

分類:[.NET 全般] 

こんばんは。一度書いたものが全部消えてしまった・・・。
私も四苦八苦している最中ですが、大体以下のような回答です。
> 私が思う標題の回避方法としては、上記のソースから判断するに、
> 「アセンブリを探し出してダウンロードしようとするロジック自体を
> 使わない(通らない)ようにする」という認識でよろしいのでしょうか?
おっしゃるとおりです。

> いろいろなページを見てきて、この現象に対する回避策は、
> @ ダミーファイルで逃げる。
> A アセンブリのオンデマンドインストール機能を使用しない。
> 上記のソースは、Aのロジックを通らないようにする方法で宜しいですか?
その通りでございます。

> 「Application Updater Component のオンデマンドインストールは使用できるのか
> 否か」

サテライトアセンブリが見つからんと言うエラーがあるように「簡単には使用できない」というのが私の結論です。すいません全くはっきりしませんです(笑)。全く使えないわけではなく、@のような回避策をとれば問題ありませんし、使えるといえば使えます。
ただし、オンデマンドインストールを用いるような自動更新のシナリオというのが私にはあんまり思い浮かびません。大抵の場合は起動時に更新を検知して、新しいのがあれば丸ごとモジュールを持ってくる、これで十分ではないでしょうか。

ところで、オンデマンドインストールはサテライトアセンブリ(*.resources.dll)のダウンロード機能ではありません。これは例えば、A.dllがマニフェストでb.dllを参照しているにも関わらず、クライアントPCにb.dllが無い場合に、サーバーから探し出してダウンロードするというものです。サテライトアセンブリが無い!と怒られるのは、マニフェストで参照しているアセンブリを片っ端から見つけ出そうとしているからだと考えられます。

内部処理もざっくり見ましたが、アセンブリリゾルバで解決できなかったアセンブリを、サーバーにおいてあるマニフェストに書いている更新先のフォルダ「直下」をさがしだす、という結構単純な機能でした。
例えば、更新モジュールのフォルダがhttp://myServer/Update/2.0.0.0/ にあるとして、myApp.exeがmyRef.dllを参照している場合、オンデマンドインストールはhttp://myServer/Update/2.0.0.0/myRef.dllしか見に行ってないようです。
コードを見ただけで、検証はしてないのですが、これだと以下のようなサテライトアセンブリはオンデマンドインストールでは取得できないことになります。

myApp.exe
ja-JP
myApp.resources.dll ←とれん


文章がおかしいところがあったら申し訳ありません。
なんせ2度同じことを書いているのでしんどい(泣)



0
引用返信 編集キー/
■528 / inTopicNo.8)  Re[7]: Application Updater Component の動作について
□投稿者/ ken 伍長(14回)-(2005/06/07(Tue) 09:12:13)

分類:[.NET 全般] 

こんにちは。

キタさん、本当に親切な返信ありがとうございます。
キタさんの以下の文章は、Application Updater Component を使用するか
否か、およびどういう風に利用していくかにおいて、必ずや役立つと
思います。

> こんばんは。一度書いたものが全部消えてしまった・・・。

本当にお疲れ様です。

> 私も四苦八苦している最中ですが、大体以下のような回答です。
> > 私が思う標題の回避方法としては、上記のソースから判断するに、
> > 「アセンブリを探し出してダウンロードしようとするロジック自体を
> > 使わない(通らない)ようにする」という認識でよろしいのでしょうか?
> おっしゃるとおりです。
>
> > いろいろなページを見てきて、この現象に対する回避策は、
> > @ ダミーファイルで逃げる。
> > A アセンブリのオンデマンドインストール機能を使用しない。
> > 上記のソースは、Aのロジックを通らないようにする方法で宜しいですか?
> その通りでございます。
>
> > 「Application Updater Component のオンデマンドインストールは使用できるのか
> > 否か」
>
> サテライトアセンブリが見つからんと言うエラーがあるように「簡単には使用できない」というのが私の結論です。すいません全くはっきりしませんです(笑)。全く使えないわけではなく、@のような回避策をとれば問題ありませんし、使えるといえば使えます。
> ただし、オンデマンドインストールを用いるような自動更新のシナリオというのが私にはあんまり思い浮かびません。大抵の場合は起動時に更新を検知して、新しいのがあれば丸ごとモジュールを持ってくる、これで十分ではないでしょうか。
>
> ところで、オンデマンドインストールはサテライトアセンブリ(*.resources.dll)のダウンロード機能ではありません。これは例えば、A.dllがマニフェストでb.dllを参照しているにも関わらず、クライアントPCにb.dllが無い場合に、サーバーから探し出してダウンロードするというものです。サテライトアセンブリが無い!と怒られるのは、マニフェストで参照しているアセンブリを片っ端から見つけ出そうとしているからだと考えられます。
>
> 内部処理もざっくり見ましたが、アセンブリリゾルバで解決できなかったアセンブリを、サーバーにおいてあるマニフェストに書いている更新先のフォルダ「直下」をさがしだす、という結構単純な機能でした。
> 例えば、更新モジュールのフォルダがhttp://myServer/Update/2.0.0.0/ にあるとして、myApp.exeがmyRef.dllを参照している場合、オンデマンドインストールはhttp://myServer/Update/2.0.0.0/myRef.dllしか見に行ってないようです。
> コードを見ただけで、検証はしてないのですが、これだと以下のようなサテライトアセンブリはオンデマンドインストールでは取得できないことになります。
>
> myApp.exe
> ja-JP
> myApp.resources.dll ←とれん

以上の結果を受けて、私自身はキタさんの方式をベースに考えていきたいと
思います。

しかし、Application Updater Component については、これをベースに
きっと別なアプローチから、意見が生まれてくるのではないかと
期待してやみません。

ですので、解決フラグを立てるのはもう少し待たせていただきたいと
思います。

キタさん本当にありがとうございます。


0
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -