|
.NET TIPS
多言語対応アプリケーションをClickOnceで配布するには?[VS 2005のみ]
デジタルアドバンテージ 一色 政彦
2006/06/30 |
 |
|
.NET Framework 2.0では、「ClickOnce」というアプリケーションを配布・更新するための機能が追加された。本稿ではそのClickOnce機能を活用して、多言語対応アプリケーションを配布する方法を紹介する(多言語対応アプリケーションの開発方法については、「TIPS:Windowsフォームを多言語対応にするには?」を参考にしてほしい)。
なお本稿では、Visual Studio 2005(以降、VS 2005)のIDEを使用することを前提とする。
多言語対応アプリケーションをClickOnceで発行するには?
.NETでは、多言語対応アプリケーションの各言語のリソースはサテライト・アセンブリ(=言語ごとのリソース・ファイル。詳しくは前掲のTIPSを参照)として作成するので、これをClickOnceで配布する必要がある。
サテライト・アセンブリは、デフォルト(=ClickOnceオプション設定における言語の設定が「(既定値)」のまま(後述)の場合)では配布されないので、手動で配布されるように設定する必要がある。これを行っているのが次の画面である。
 |
 |
 |
サテライト・アセンブリがClickOnceで配布されるようにする設定 |
多言語アプリケーションのサテライト・アセンブリをClickOnceで配布されるように設定しているところ。 |
|
 |
プロジェクトのプロパティを開く。 |
|
 |
プロジェクト・プロパティの[発行]タブを開く。 |
|
 |
[発行]ページの[アプリケーション ファイル]ボタンをクリックする。これにより、[アプリケーション ファイル]ダイアログが表示される。 |
|
 |
[アプリケーション ファイル]ダイアログの[すべてのファイルを表示]チェック・ボックスにチェックを入れる。これによりすべてのアプリケーション・ファイルが表示される。※[発行の状況]が「除外」のファイルは、これにチェックを入れない限り表示されない。サテライト・アセンブリは、その[発行の状況]が自動的に「除外 (自動)」に設定されるため、ここには表示されないし配布もされない。 |
|
 |
配布したいサテライト・アセンブリ(本稿の例では「ko-KR\WindowsApplication1.resources.dll」と「ja-JP\WindowsApplication1.resources.dll」という2つのファイル)の[発行の状況]を「追加」に変更する。これにより、それらがClickOnceで配布されるようになる。 |
|
 |
あとは[OK]ボタンをクリックして設定を保存する。 |
|
以上の設定により多言語アプリケーションをClickOnceで発行できるようになるわけだが、すべての言語のサテライト・アセンブリが無駄に配布されてしまうという問題がある。特に対応言語数が多い場合には問題となるだろう。これを回避する方法は2つある。
- 言語ごとにローカライズ版ClickOnceアプリケーションを作成する
- 必要な言語のサテライト・アセンブリだけをオンデマンドで配布する
2の方法はコーディングが必要となるため、後日あらためて紹介するとしよう。以降では、1の方法について説明する。
言語ごとにローカライズ版ClickOnceアプリケーションを作成する
ある多言語対応アプリケーションの特定言語のバージョン(=ローカライズ版ClickOnceアプリケーション)をClickOnceで発行するには、VS 2005の発行オプションの[発行の言語]で、配布したい「言語-カルチャ」を設定するだけである。次の画面は、実際にこれを行っている例である。具体的には、[発行の言語]を「日本語 (日本)」(=「ja-JP」)に設定している。
 |
 |
 |
多言語対応アプリケーションの特定言語のバージョンをClickOnceで発行する際の「言語-カルチャ」の設定 |
発行するClickOnceアプリケーションの「言語-カルチャ」を、「日本語 (日本)」(=ja-JP)に設定しているところ。 |
|
 |
プロジェクトのプロパティを開く。 |
|
 |
プロジェクト・プロパティの[発行]タブを開く。 |
|
 |
[発行]ページの[オプション]ボタンをクリックする。これにより、[発行オプション]ダイアログが表示される。 |
|
 |
[発行オプション]ダイアログの[発行の言語]の一覧から、発行したい「言語-カルチャ」を選択する(この例では「日本語 (日本)」を選択)。 |
|
 |
あとは[OK]ボタンをクリックして設定を保存する。 |
|
以上の設定を行った後、実際にClickOnceの発行を行うと、本稿の例では、次のようなディレクトリ構造でアプリケーションが発行された。
 |
[発行の言語]を指定してClickOnceで発行した場合のディレクトリ構造 |
[発行の言語]を「日本語 (日本)」(=ja-JP)に指定してClickOnceで発行を行うと、この画面の例のように、「ja-JP」というフォルダの配下にサテライト・アセンブリ(=言語ごとのリソース・ファイル)が配置される。なお、(デフォルトの設定では).EXEや.DLLなどのClickOnceで配布されるアプリケーション・ファイルには「.deploy」という拡張子が付加される。ちなみに、冒頭で紹介した方法で、サテライト・アセンブリを手動で配布されるように設定したときもこれと同じフォルダ構成となる。 |
このように発行されたClickOnceアプリケーションを実行すると、そのユーザーの実行環境が「日本語 (日本)」という「言語-カルチャ」であれば、正しく「日本語 (日本)」のアプリケーションとして実行できるはずだ。
サテライト・アセンブリの自動選択について
特定言語のClickOnceアプリケーションを配布する場合、(上記のClickOnceで発行された際のディレクトリ構造を見れば分かるように)その言語に対応するサテライト・アセンブリは自動的に配布される。例えば、上記の例のように[発行の言語]を「日本語 (日本)」(=ja-JP)に指定した場合、本稿の例では「ja-JP\WindowsApplication1.resources.dll」というファイルが自動的に配布される。このようになるのは、その「言語-カルチャ」に対応するサテライト・アセンブリの[発行の状況]が自動的に「追加 (自動)」に設定されるためだ。
次の画面は、これを実際に確認しているところである。
この画面の説明を見れば分かるように、ClickOnceでは、[発行の言語]の選択に基づきその言語に対応したサテライト・アセンブリが自動的に配布されるわけである。
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間