ClickOnceで、またも半日ツブす。

「はじめてのことだから、
    上手くいかなくても、いいんだよ。」


と、新入社員と自分に言い聞かせながら・・・・


1. ClickOnceのURLは、ケースセンシティブ?

 新人君へのOJTで、テスト用サーバーにClickOnceインストーラーを置くためのフォルダを作成してもらった。

 すぐに、
 「http://sample.example.com/Test1/
を作成しましたと、報告がきました。


 こちらは、インストールURLを
 「http://samaple.example.com/text1/

 と、していました。


 セットアップを発行して、FTPでアップロード。

 クリーンなマシンから、アクセスして[インストール]ボタンをクリック。

 何度やっても途中で、

URLDownloadToCacheFile failed with HRESULT '-2146697210'
Error: 'http://sample.example.com/Test1/Sample1.application' をダウンロードしようとしてエラーが発生しました。

 で、止まる。


 Google先生にお伺いして、見つけたものを次々と試すが進展なし。


 お昼食べて、ふっと思いついたのが

「ダウンロード失敗とは、パスが違う?????? ってこと?」

 と、言うことで、試しに、サーバー側フォルダを"test1"に書き換えると、
すんなりとインストールできました。


 やれやれ・・・・・


2. ClickOnceで配布するexeのコンパイルは気を付けよう。

 今回のアプリは、メインのexeの他に十本ちょいのクラスライブラリと、フォームを持ち、メインとは別スレッドで動作する必要のあるexeがあります。

 そして、これもClickOnceで配布するのですが、何度やっても

"デプロイメント内の参照が、アプリケーション マニフェスト内で定義された ID と一致しません"

と、エラーになる。


 又も、Google先生にお伺いして、見つけた中に回答がありました。

 ClickOnceでメインと一緒に配布するexeは、

  • プロジェクトのプロパティ

の部分で、マニフェストの欄を
  [マニフェストなしでアプリケーションを作成します]。

を選択します。


これで、メインを発行して問題無くインストールできました。



しかし、ClickOnceのエラーは、もう少し分かり易くはならないのい?