|
.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で配布されるように設定しているところ。 | ||||||||||||||||||
|
以上の設定により多言語アプリケーションをClickOnceで発行できるようになるわけだが、すべての言語のサテライト・アセンブリが無駄に配布されてしまうという問題がある。特に対応言語数が多い場合には問題となるだろう。これを回避する方法は2つある。
- 言語ごとにローカライズ版ClickOnceアプリケーションを作成する
- 必要な言語のサテライト・アセンブリだけをオンデマンドで配布する
2の方法はコーディングが必要となるため、後日あらためて紹介するとしよう。以降では、1の方法について説明する。
言語ごとにローカライズ版ClickOnceアプリケーションを作成する
ある多言語対応アプリケーションの特定言語のバージョン(=ローカライズ版ClickOnceアプリケーション)をClickOnceで発行するには、VS 2005の発行オプションの[発行の言語]で、配布したい「言語-カルチャ」を設定するだけである。次の画面は、実際にこれを行っている例である。具体的には、[発行の言語]を「日本語 (日本)」(=「ja-JP」)に設定している。
![]() |
|||||||||||||||
![]() |
|||||||||||||||
| 多言語対応アプリケーションの特定言語のバージョンをClickOnceで発行する際の「言語-カルチャ」の設定 | |||||||||||||||
| 発行するClickOnceアプリケーションの「言語-カルチャ」を、「日本語 (日本)」(=ja-JP)に設定しているところ。 | |||||||||||||||
|
以上の設定を行った後、実際にClickOnceの発行を行うと、本稿の例では、次のようなディレクトリ構造でアプリケーションが発行された。
![]() |
| [発行の言語]を指定してClickOnceで発行した場合のディレクトリ構造 |
| [発行の言語]を「日本語 (日本)」(=ja-JP)に指定してClickOnceで発行を行うと、この画面の例のように、「ja-JP」というフォルダの配下にサテライト・アセンブリ(=言語ごとのリソース・ファイル)が配置される。なお、(デフォルトの設定では).EXEや.DLLなどのClickOnceで配布されるアプリケーション・ファイルには「.deploy」という拡張子が付加される。ちなみに、冒頭で紹介した方法で、サテライト・アセンブリを手動で配布されるように設定したときもこれと同じフォルダ構成となる。 |
|
このように発行されたClickOnceアプリケーションを実行すると、そのユーザーの実行環境が「日本語 (日本)」という「言語-カルチャ」であれば、正しく「日本語 (日本)」のアプリケーションとして実行できるはずだ。
サテライト・アセンブリの自動選択について
特定言語のClickOnceアプリケーションを配布する場合、(上記のClickOnceで発行された際のディレクトリ構造を見れば分かるように)その言語に対応するサテライト・アセンブリは自動的に配布される。例えば、上記の例のように[発行の言語]を「日本語 (日本)」(=ja-JP)に指定した場合、本稿の例では「ja-JP\WindowsApplication1.resources.dll」というファイルが自動的に配布される。このようになるのは、その「言語-カルチャ」に対応するサテライト・アセンブリの[発行の状況]が自動的に「追加 (自動)」に設定されるためだ。
次の画面は、これを実際に確認しているところである。
|
上記の手順で[発行の言語]を「日本語 (日本)」に設定 |
|||
![]() |
|||
| 自動的に配布されるように設定されたサテライト・アセンブリ | |||
| ClickOnceで発行されるサテライト・アセンブリの内容を確認しているところ。 | |||
|
この画面の説明を見れば分かるように、ClickOnceでは、[発行の言語]の選択に基づきその言語に対応したサテライト・アセンブリが自動的に配布されるわけである。![]()
| カテゴリ:Windowsフォーム 処理対象:ClickOnce 関連TIPS:Windowsフォームを多言語対応にするには? |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -








