Help us understand the problem. What is going on with this article?

"アプリケーションと同じ場所から必須コンポーネントをダウンロードする" で上手くいかない場合

More than 1 year has passed since last update.

TL;DR

[必須コンポーネント] ダイアログ ボックスで [アプリケーションと同じ場所から必須コンポーネントをダウンロードする] を有効にするには…

error.png

みたいなことになった時

エラーメッセージ中にヘルプURL https://go.microsoft.com/fwlink/?LinkId=616018 がありますが
このページに記載されているパスに誤りがあります。

【誤】 C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages
【正】 C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages

パス以外は正しいので読み替えれば行けます。

概要

ユーザー側がオフライン環境でも利用できるようなアプリを発行する場合、
プロジェクトのプロパティから次のようにして .NET Framework を埋め込みます。

001.png

002.png

ここでそのまま "発行" すると冒頭のエラーが出ます。
これを解決するには、ローカル環境にコンポーネントをダウンロードする必要があります。

解決手順

基本的には 方法 : ClickOnce アプリケーションと共に必須コンポーネントを含める に従います。
ただし、冒頭で説明した通り パスの一部は読み替えます。

例えば .NET Framework 4.6.1 をインストーラーに埋め込みたい場合は次のようにします。

1. 必要なコンポーネントの確認

確認すべきファイルは次の2点です。

  • C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461\Product.xml
  • C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461\ja\Package.xml

これらのファイル内の <PackageFile> 要素を見ると

  • NDP461-KB3102436-x86-x64-AllOS-ENU.exe ← .NET Framework 再頒布可能パッケージ
  • NDP461-KB3102436-x86-x64-AllOS-JPN.exe ← 言語パック

の2つが必要であることがわかります。
(Webインストーラーの名前もあると思いますが今回は要件的に無視)

2. 各コンポーネントをダウンロード

.NET Framework 再頒布可能パッケージ

.NET Framework 配置ガイド に従って NDP461-KB3102436-x86-x64-AllOS-ENU.exe をダウンロードします。

言語パック

C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461\ja\Package.xml
fwlink で検索すると直DLリンクが見つかるので、そのURLを使用してダウンロードします。
筆者環境では http://go.microsoft.com/fwlink/?linkid=671731&amp;clcid=0x411 が見つかりました。

3. コンポーネントを規定のパスに配置

  • C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461\NDP461-KB3102436-x86-x64-AllOS-ENU.exe を配置
  • C:\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages\DotNetFX461\ja\NDP461-KB3102436-x86-x64-AllOS-JPN.exe を配置

これで、プロジェクトの "発行" を行うとオフライン環境向けインストーラーが生成されます。


以上です。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away