none
インストーラの言語を取得するには RRS feed

  • 質問

  • お世話になります。

    日本語版と英語版のインストーラーを作成しているのですが、

    インストーラークラスでインストーラーの言語を取得するにはどうすればよいでしょうか?

     

    現在、セットアッププロジェクトのプロパティのLocalizationでJapanese、Englishを切り替えて日本語版、英語版のインストーラーを作成しており、

    インストーラークラスで日本語版と英語版によって処理を変えたいんですが。

    2010年10月6日 4:24

回答

  • インストーラクラスを呼ぶ引数に [ProductLanguage] を渡すことで、識別できます。

    詳しくは、ProductLanguage Property を一度参照してください。

    インストーラクラスにプロパティを渡す方法がわからない場合は http://msdn.microsoft.com/ja-jp/library/d9k65z2d.aspx  からカスタム動作のチュートリアルがあるので、そちらを参照してください。

    とりあえず、VS2010のURLを張っていますが、VS2008まででも変わりはありません。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    • 回答としてマーク yty0918 2010年10月6日 6:34
    2010年10月6日 5:41

すべての返信

  • インストーラクラスを呼ぶ引数に [ProductLanguage] を渡すことで、識別できます。

    詳しくは、ProductLanguage Property を一度参照してください。

    インストーラクラスにプロパティを渡す方法がわからない場合は http://msdn.microsoft.com/ja-jp/library/d9k65z2d.aspx  からカスタム動作のチュートリアルがあるので、そちらを参照してください。

    とりあえず、VS2010のURLを張っていますが、VS2008まででも変わりはありません。


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    • 回答としてマーク yty0918 2010年10月6日 6:34
    2010年10月6日 5:41
  • とっちゃんさん回答ありがとうございます。

    プライマリ出力のプロパティのCustomActionDataに

    /productlanguage="[PRODUCTLANGUAGE]"

    を追記し、

    インストーラークラスで

    this.Context.Parameters["productlanguage"]

    として取得したところ、空白になっていました。

    やり方が違うのでしょうか?

    2010年10月6日 6:12
  • /productlanguage="[PRODUCTLANGUAGE]"を

    /productlanguage="[ProductLanguage]"にしたところうまく取得できました。

    全部大文字にしていたのが間違いでした。

    ありがとうございました。

    2010年10月6日 6:34
  • アラート設定し忘れてて、通知が来てなかった...orz

    すでに解決済みですが、ついでなので。

    プロパティ([]でくくって渡しているWindowsInstallerの変数)は、大文字小文字を区別します。全部大文字の場合のプロパティをパブリックプロパティ、そうではないもの(小文字の混ざっているもの)をプライベートプロパティと呼び、それぞれ参照可能範囲が異なります。

    また、大文字小文字が異なるだけで同じ名称のプロパティを作ることもできます。

    タイプミスしていて気が付かなかった。。。なんていうこともありますので注意してください。>インストーラやる人w

     


    わんくま同盟,Microsoft MVP for Visual C++(Oct 2005-) http://blogs.wankuma.com/tocchann/
    2010年10月7日 4:30