none
IISでClickOnceアプリケーションを配布する際、.NET Frameworkと一緒に配布するとエラーとなる RRS feed

  • 質問

  • .NET Framework 4.6.2 で開発したデスクトップアプリケーションを、Webサーバを使って、ClickOnceで配布しようとしています。

    (開発環境:VS2015 SP3、配布サーバ IIS7.5)

    .NET Framework 4.6.2 が既にインストールされている端末が、配置されたpublish.htm にアクセスしてインストールを実行した場合は、問題なくアプリケーションがインストールされます。

    しかし「必須コンポーネントをインストールするセットアッププログラムを作成する」を選択して、.NET Framework 4.6.2 を指定し、かつ「アプリケーションと同じ場所から必須コンポーネントをダウンロードする」という設定で配布した場合、.NET Framework 4.6.2 が未インストールの端末で、publish.htm からインストールを行うと、.NET Framework は問題なくインストールされますが、アプリケーション本体のダウンロードが途中で失敗し、エラーとなります。

    ダウンロードされたファイルをトレースすると、通常ブラウザ上で保存せずに実行したexeファイルは、IEのテンポラリフォルダにcockieデータなどと共に保管され、実行されると思いますが、.NET Frameworkを先にインストールすると、.NET Framework のインストーラは、%TEMP% のフォルダに保存されて実行し、それに合わせて、.application ファイルも同じTEMPフォルダにダウンロードされてしまうため、相対パスで指定されている .manifest ファイルが見つけられず、エラーとなっているようです。

    上記のような動きについて、VS2015 の設定などで回避する方法はありますでしょうか。

    ※尚、「必須コンポーネントをインストールするセットアッププログラムを作成する」の設定を「必須コンポーネントをコンポーネントの開発元のWebサイトからダウンロードする」にすると、.NET Framework、アプリ本体どちらも問題なくインストールされます。

    ※但し今後、本番稼働の際には100台以上の端末での同時配布も想定されるため、できればインターネット経由ではなく、イントラ内のサーバから.NET Framework含めて配布したいと考えています。

    2018年2月16日 9:01