- PR -

ノータッチデプロイメントについて

投稿者投稿内容
フニヲ
会議室デビュー日: 2003/07/28
投稿数: 11
投稿日時: 2004-02-10 18:18
お世話になります。

今、ノータッチデプロイメントを使って、
今までWindows アプリケーションとして動いていたものをサーバに置き、
どのくらい動くのかと検証しています。
IISから最初のexeを起動することはできますが、その後の処理をするDLLが
Local の assembly\Download フォルダにダウンロードされません。
よって起動後は、エラーが起きて処理できません。
(起動時に必要なDLLは、ダウンロードされています。)

Local にダウンロードされるものとされないものの違いが
どうにもわかりません。
すいませんが、どなたかご教授お願いします。


Win2K Server(SP4), VS.NET2003 を使っています。

よろしくお願いします。

きいす
会議室デビュー日: 2004/02/09
投稿数: 10
投稿日時: 2004-02-10 18:25
フニヲさんへ

はじめまして。
該当するDLLに関してクライアント側のセキュリティ設定は
されておりますでしょうか???
フニヲ
会議室デビュー日: 2003/07/28
投稿数: 11
投稿日時: 2004-02-10 18:48
きいす さん

早速のご返答ありがとうございます。

DLLをクライアント側では、これといってセキュリティを
かけていません。
(デフォルトでは、何もセキュリティは設定されてませんよね??)

すみませんが、よろしくお願いします。
きいす
会議室デビュー日: 2004/02/09
投稿数: 10
投稿日時: 2004-02-10 19:17
フニヲさんへ

外部のコンポーネント(という表現が正しい???)を使う場合は
対象となるEXEとDLLに対する信頼を完全信頼にしないとダメではないですかね???
Microsoft .NET Framework 1.1 ウィザード → アセンブリの信頼
から変更出来ます。
私は最近NoTouchDeploymentの調査をし始めたばかりなので、回答が的外れでしたら
スイマセン・・・
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-10 19:43
引用:

フニヲさんの書き込み (2004-02-10 18:18) より:

IISから最初のexeを起動することはできますが、その後の処理をするDLLが
Local の assembly/Download フォルダにダウンロードされません。
よって起動後は、エラーが起きて処理できません。
(起動時に必要なDLLは、ダウンロードされています。)


 よく意味がわからないのですが、『localのassenbly/download』って、なんですか?アセンブリがダウンロードされるのは、
Dcuments And Settings/User Name/Local Settings/Application Data/assembly/dll
だと思いますけど?(dllがdl2だったりする)

 また、『その後の処理をするDLLがダウンロードできない』と、『起動時に必要なDLLは、ダウンロードされている』が、矛盾していませんか?それとも、『その後の処理をするDLL』は、自力でローカルへのコピーを試みているのでしょうか?

#####
・正確に省略せずに書く
・他人は自分ほど、“私”の問題を知っていない
この2点に気を付けてください。
#ディレクトリの区切りにスラッシュを使いました

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-02-10 19:45 ]
フニヲ
会議室デビュー日: 2003/07/28
投稿数: 11
投稿日時: 2004-02-10 20:31
Jitta さん

大変失礼しました。

>よく意味がわからないのですが、『localのassenbly/download』って、なんですか?
>アセンブリがダウンロードされるのは、
>Dcuments And Settings/User Name/Local Settings/Application Data/assembly/dll
>だと思いますけど?(dllがdl2だったりする)

Dcuments And Settings/User Name/Local Settings/Application Data/assembly/
は、%Systemroot%/assembly/Download の実体が入っている場所ですよね。
いつも、%Systemroot%/assembly/Download のほうを見て確認していましたので、
こちらのパスを書いてしまいました。すいません。

>また、『その後の処理をするDLLがダウンロードできない』と、
>『起動時に必要なDLLは、ダウンロードされている』が、矛盾していませんか?
>それとも、『その後の処理をするDLL』は、
>自力でローカルへのコピーを試みているのでしょうか?

検証しているアプリケーションは、ログイン画面を表示させて、
ログイン成功後、メニュー選択画面が表示されます。
「起動時に必要なDLL」とは、ログイン画面に必要な exe と DLL が
ダウンロードできているということです。
「その後の処理のDLL」とは、ログイン成功後、メニュー選択画面から、
項目を選択した後に、起動されるべきDLL等のことです。

現在は、ログオン成功後のメニュー選択画面までは、いけるのですが、
メニューを選択した後に、エラーが発生します。

"mscorlib:ファイルまたは、アセンブリ名〜 その依存関係の1つが見つかりませんでした。"

このエラーが出たので、先ほどのパスのフォルダの中を調べましたら、
(コマンドプロンプトで、gacutil /ldl も試しました。)
ログオン画面とメニュー選択画面に必要な exeとDLL は、入っているのですが、
メニューを選択したら起動すべき、プログラムのDLLが入っていないという状況です。

ご理解いただけましたでしょうか?
自分本位の内容で大変申し訳ございませんでした。

何卒よろしくお願いします。






Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-10 21:40
 メニュー画面の後、処理をするDLLも、.NETのアセンブリですね?
 では、そのソリューションは、どのように構成しましたか?また、プロジェクトの設定で「参照」したと思いますが、その時に「ローカルにコピー」をtrueのままにしていますか?

 あるいは、最初に呼び出しているEXEを作ったプロジェクトは、全てのプロジェクトを参照していますか?
フニヲ
会議室デビュー日: 2003/07/28
投稿数: 11
投稿日時: 2004-02-12 19:34
Jitta さん、きいす さん
ご回答ありがとうございます。


>メニュー画面の後、処理をするDLLも、.NETのアセンブリですね?
はい。全て.NET のアセンブリです。


>「ローカルにコピー」をtrueのままにしていますか?
はい。true のままでした。


>最初に呼び出しているEXEを作ったプロジェクトは、全てのプロジェクトを参照していますか?
はい。全てを参照しています。

ですが依然、うまくいきません。

ソースを見返してみたのですが、うまくダウンロードされないDLLは、
どうやら、Reflection.Assembly.LoadFrom を使って動的に作成しているみたいです。
これが、よくないのでしょうか???

最初に呼び出しているEXEのプロジェクトに全てのDLLを参照しています。
参照されているDLLは、このEXEが呼ばれた時に、
ダウンロードされるべきなのでしょうか?

稚拙な質問ばかりで申し訳ございません。
ご教授お願いします。

スキルアップ/キャリアアップ(JOB@IT)