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

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

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

Re[6]: ClickOnceの環境について


(過去ログ 75 を表示中)

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

■44147 / inTopicNo.1)  ClickOnceの環境について
  
□投稿者/ らんぺるーる (117回)-(2009/11/30(Mon) 19:51:31)

分類:[VB.NET/VB2005 以降] 

ClickOnceにてクライアントにアプリケーションの配布を行うことを考えています。

・配置場所は「Web上の場所」、クライアントはIEから使用となります。

・ClickOnceで配布するアプリケーションの内容についてですが、
 「参照の追加」よりActiveXコントロール(OCXファイル)を指定しています。

アプリケーションの動作検証をしたところ、
上記OCXファイルについてレジストリ登録をおこなえば、
正常にアプリケーションが動作しましたが、
レジストリ登録をおこなわなければ、
起動時にエラーが発生してしまうことが分かりました。

*アプリケーションと同じフォルダにOCXファイルを配置しても
 エラーが発生しました。

全ての端末にレジストリ登録をおこなうのは運用上、
結構な手間になるので、出来ればClickOnceでアプリケーションを
配布するだけにしたいと考えていますが、何か解決方法等
ご存知でしたら、宜しくおねがい致します。






引用返信 編集キー/
■44148 / inTopicNo.2)  Re[1]: ClickOnceの環境について
□投稿者/ 魔界の仮面弁士 (1400回)-(2009/11/30(Mon) 20:16:07)
No44147 (らんぺるーる さん) に返信
> 上記OCXファイルについてレジストリ登録をおこなえば、
> 正常にアプリケーションが動作しましたが、
> レジストリ登録をおこなわなければ、
> 起動時にエラーが発生してしまうことが分かりました。

ソリューション エクスプローラーで[全てのファイルを表示]を有効にした後、
参照設定に追加した ocx を選択して、プロパティの "分離" を True に変更しておけば、
動作するかも知れません。
http://msdn.microsoft.com/ja-jp/library/ms165432.aspx

関連情報
http://msdn.microsoft.com/ja-jp/events/dd277942.aspx
http://msdn.microsoft.com/ja-jp/library/ybd0ktt9.aspx
http://msdn.microsoft.com/ja-jp/library/ms811700.aspx
引用返信 編集キー/
■44209 / inTopicNo.3)  Re[2]: ClickOnceの環境について
□投稿者/ らんぺるーる (118回)-(2009/12/01(Tue) 18:19:28)
No44148 (魔界の仮面弁士 さん) に返信
> ■No44147 (らんぺるーる さん) に返信
>>上記OCXファイルについてレジストリ登録をおこなえば、
>>正常にアプリケーションが動作しましたが、
>>レジストリ登録をおこなわなければ、
>>起動時にエラーが発生してしまうことが分かりました。
>
> ソリューション エクスプローラーで[全てのファイルを表示]を有効にした後、
> 参照設定に追加した ocx を選択して、プロパティの "分離" を True に変更しておけば、
> 動作するかも知れません。
> http://msdn.microsoft.com/ja-jp/library/ms165432.aspx
>
> 関連情報
> http://msdn.microsoft.com/ja-jp/events/dd277942.aspx
> http://msdn.microsoft.com/ja-jp/library/ybd0ktt9.aspx
> http://msdn.microsoft.com/ja-jp/library/ms811700.aspx

魔界の仮面弁士様、
いつも回答ありがとうございます。

分離について試してみましたが、ビルドエラー(警告)がかなり出てしまいうまくいきませんでした。
エラーの内容については以下の2点が出てています。
*@「COM参照"XX"の分離エラーです。レジストリーキー"XX"はインポートされませんでした。
 A「2つ以上のファイルに、同じターゲットパス"XX"が指定されています。」
     等が発生しています。Aについては、調べてみましたが、
     特に同じファイルパスを参照している参照設定はないのですが。
分離についてはWindowsXP以降対応等の様々な制限があったり、
OCXを配置したクラスで使用しているコンポーネントは全て参照追加した上で
分離する必要があるような記載があり(テキストコントロール、タブコントロール等)
適用を見送りたいと考えています。

解決が詰まってしまったので、リンク先に記載してあった2つめの方法である
「ブートストラップを使用して COM コンポーネントを配置する。
この方法は、サポートされているすべてのプラットフォームで有効です。」
という方法を検討してみました。

ブートストラップを使用した方法を適用し、ClickOnceとして配布するところまでは
できましたが、必須コンポーネントのインストール中に以下のエラーが発生いたします。

「コンポーネント XX のインストールに失敗し、次のエラー メッセージが生成されました:
"この操作を正しく終了しました。 "

次のコンポーネントをインストールできませんでした:
- XX

詳細については、'XX\install.log' にあるセットアップ ログ ファイルを参照してください。」

稼動ログを確認したところ、「"C:\WINNT\system32\msiexec.exe" -I "msiファイルへのパス" -q 」
という箇所でエラーが発生しており、「-q」というパラメータ引数が原因のような気がしております。

上記の内容を「ファイル名を指定して実行」にコピペしたところ、インストーラが起動しませんでした。
なお、「-q」を削除したところ、インストーラが正常に起動しました。
「ブートストラップ」の設定は、「Bootstrapper Manifest Generato」というツールを使用しておこないました。

本エラーの原因、対処方法についてアドバイス等お願いいたします。






引用返信 編集キー/
■44211 / inTopicNo.4)  Re[3]: ClickOnceの環境について
□投稿者/ らんぺるーる (119回)-(2009/12/01(Tue) 18:38:07)
インストール時のエラーの件ですが、
qを指定すると、UIを表示しないだけのようでした。

インターネットで「msiexec.exe」のパラメータ引数を調べたところ、
「q , qn - UI を表示しません。」と記載がありました。

上記より、UIが表示されないだけで、
「"C:\WINNT\system32\msiexec.exe" -I "msiファイルへのパス" -q 」
の箇所でエラーが発生していたのではないのかもしれません。


稼動ログの最後の3行ですが、以下のように出ております。
Installing using command line '「"C:\WINNT\system32\msiexec.exe" -I "msiファイルへのパス" -q 」 '
Process exited with code 0
Status of package 'XX' after install is 'InstallFailed'

→動作確認をするとOCXファイルが読み込みできており、
 正常に動作するのですが、インストール結果が'InstallFailed(失敗?)'になるのはどうしてでしょうか…。
引用返信 編集キー/
■44212 / inTopicNo.5)  Re[4]: ClickOnceの環境について
□投稿者/ らんぺるーる (120回)-(2009/12/01(Tue) 19:09:33)
先述のとおり、「ブートストラップ」の設定は、「Bootstrapper Manifest Generato」
というツールを使用しておこないました。

参考にしたのは以下のURLです。
http://www.atmarkit.co.jp/fdotnet/clickonce/clickonce05/clickonce05_03.html

そこで、セットアップの実行結果を判定する「Exitコード」の設定について
「Use Default System Exit Codes」が「Fail」がデフォルト設定となっているのが
気になります。上記URLには設定の変更は不要である旨が書かれていますが、
上記のままではセットアップ結果が失敗になるのではないのでしょうか…。

なお、出力されるマニフェストファイルにおける上記設定の対応は以下の箇所であると思います。

<UIExitCodes>
<DefaultExitCode Result="Fail" FormatMessageFromSystem="True" Message="An unexpected exit code was returned from the installer. The installation failed." />
</UIExitCodes>

Result属性値の「Fail」にするのが一般的なのでしょうか?
引用返信 編集キー/
■44234 / inTopicNo.6)  Re[5]: ClickOnceの環境について
□投稿者/ とっちゃん (438回)-(2009/12/02(Wed) 11:12:10)
とっちゃん さんの Web サイト
No44212 (らんぺるーる さん) に返信

戻り値が0の場合にエラーを設定しているのでしょうか?
だとするとそれは、間違いです。

インストール成功時(ユーザーキャンセルもしていない)場合に0が帰ってきます。
そのほかのエラーコード類は、ブートストラッパーのフォルダにあるクリスタルレポートの
インストーラが msi なので同じように設定するといいと思いますよ。

引用返信 編集キー/
■44263 / inTopicNo.7)  Re[6]: ClickOnceの環境について
□投稿者/ nori (81回)-(2009/12/02(Wed) 19:13:33)
2009/12/02(Wed) 19:15:40 編集(投稿者)

読み直したら分離は見送りとの事なので削除
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -