none
アセンブリリソースファイルが表示されない RRS feed

  • 質問

  • 国際化対応する手順で、

    追加 - 新しい項目の追加 -  アセンブリリソースファイル 

    を追加するという手順があるのですが、この『アセンブリリソースファイル』が一覧の中にありません。

    アセンブリリソースファイル』を一覧に表示する方法について教えて頂けないでしょうか?。

    環境は visual studio 2017 C# です。

    2017年9月28日 3:35

回答

  • > 1.表示 - ソリューションエクスプローラ を選択
    > 2.xxxx下のPropertiesを右クリック - 追加 - 新しい項目を選択し、「新しい項目の追加 - xxxx」を表示する。
    > 3.インストール済 - Visual C# アイテム - リソースファイル を選択。
    > 4.名前に「Resource.resx」を入力
    > 5.[追加(A)]ボタンを押下。

    VS2017 で変わったのかどうかわかりませんが、上記は間違いないですか?

    自分の VS2015 Community Update 3 では Windows Forms アプリのテンプレートを使ってプロジェクトを生成した場合は、以下の画像のように Properties フォルダには最初から Resources.resx と Resources.Designer.cs が生成されています。(青線で囲った部分)

    また、そもそも、ソリューションエクスプローラーの Properties を右クリックでは[追加(D)]のメニューは現れません。

    > 7.ソリューションエクスプローラの「Resource.resx」を右クリックし、コピーを選択。
    > 8.「Resource - コピー.resx」を右クリック - 名前の変更 で、「Resource.ja-JP.resx」に名前を変更

    VS2017 では 1 ~ 5 が可能だとしても、7, 8 のやり方は間違ってます。

    [追加(D)]のメニューから新たに「リソースファイル」を追加します。その際名前を「Resource.ja-JP.resx」にします。(注:その際追加されるのはリソースファイル .resx のみで、厳密に型指定されたリソースクラス .Designer.cs は追加されません・・・それが正しい結果です)

    ただし、自分の環境では Properties フォルダでは[追加(D)]メニューは開けないので、Properties フォルダではその作業はできないのですが。

    自分はどうしているかと言うと、上の画像のソリューションエクスプローラーの赤線で囲った部分のように、プロジェクトのフォルダ直下に作るようにしています。(別のフォルダを作ってそこに入れてもいいですが)


    • 編集済み SurferOnWww 2017年10月3日 4:34 typo 訂正&追記
    • 回答としてマーク lga_im 2017年10月4日 2:09
    2017年10月3日 3:42

すべての返信

  • どこを参考にしていて、何をターゲット(Form?WPF?)にしているのかわかりませんが、バージョンによって表記が微妙に異なっているのかな?
    リソースファイル(*.resxもしくは*.resw)でかまわないはずですよ。

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    2017年9月28日 9:38
  • VS2017 は持ってないので分かりませんが・・・

    VS2015 Community では、ソリューションエクスプローラーでプロジェクトのノードを右クリック ⇒ 出てくるコンテキストメニューで[追加(D)]⇒[新しい項目(W)...]をクリックで以下のダイアログが表示されます。


    そこで[リソースファイル]を選択して、任意の名前を付けて、[追加(A)]ボタンをクリックすればリソースファイル .resx が追加されます。

    VS2017 では違うのですか?

    2017年9月28日 10:48
  • 当方の環境「VS2017 Community」でも「VS2015 Community」と同様の表示になっています。しかしとあるサイトの引用で恐縮ですが、国際化対応する為には、「アセンブリリソースファイル」の追加が必要で画像の様に表示されるらしいです。「アセンブリリソースファイル」の表示方法について調べている次第です。

    2017年10月3日 0:43
  • たまたま手元にあったVisual Studio 2010だとアセンブリリソースファイルになってますね。まあ結局.ResXなので、Visual Studio 2015などでリソースファイルと表示されるものと同じですが。

    // わざわざ「とあるサイト」とか言って言葉を濁す意味はないので、さっさとそのサイトへのリンクを張るべきでした。

    2017年10月3日 1:00
  • ご回答ありがとうございます。
    リソースファイル(Resources.resx)と日本語用リソースファイル(Resources.ja-JP.resx)を追加し、両者に値を追加しました。
    しかし、実行したところ、「xxxx.Properties」に赤い波線が引かれ、
    error CS0234: 型または名前空間の名前 'Properties' が名前空間 'xxxx' に存在しません (アセンブリ参照があることを確認してください)。
    のエラーが発生してしまします。

    当方、初心者で、設定ミスや追加すべきモジュールなどが漏れている可能性があります。

    2017年10月3日 1:05
  • > しかしとあるサイトの引用で恐縮ですが、国際化対応する為には、「アセンブリリソースファイル」の追加が必要で画像の様に表示されるらしいです。

    「アセンブリリソースファイル」=「リソースファイル」です。

    ちなみに自分の Visual Studio 2010 Pro. では「アセンブリリソースファイル」という名前になっていますが、Visula Stidio 2015 の「リソースファイル」(最初のレスの画像のもの)と同じです。

    2017年10月3日 1:08
  • > しかし、実行したところ、「xxxx.Properties」に赤い波線が引かれ、

    あなたが何を作っていて(Windows Forms? ASP.NET Web Forms? WPF? その他?)、どのフォルダにどのような手順でリソースファイルを作ったか詳しく書いてください。

    2017年10月3日 1:26
  • > しかし、実行したところ、「xxxx.Properties」に赤い波線が引かれ、

    あなたが何を作っていて(Windows Forms? ASP.NET Web Forms? WPF? その他?)、どのフォルダにどのような手順でリソースファイルを作ったか詳しく書いてください。


    ご回答ありがとうございます。

    Windows Formsを作り、以下の手順で作成後のソリューションエクスプローラの状態は添付ファイルです。

    リソースファイルの追加手順は下記です。
    1.表示 - ソリューションエクスプローラ を選択
    2.xxxx下のPropertiesを右クリック - 追加 - 新しい項目を選択し、「新しい項目の追加 - xxxx」を表示する。
    3.インストール済 - Visual C# アイテム - リソースファイル を選択。
    4.名前に「Resource.resx」を入力
    5.[追加(A)]ボタンを押下。
    6.ソリューションエクスプローラの「Resource.resx」を開き
    名前 : msg_oftotalRAMusage , 値 : of total RAM usage を入力、アクセス修飾子:Internalのまま、リソースの追加を押す。
    7.ソリューションエクスプローラの「Resource.resx」を右クリックし、コピーを選択。
    8.「Resource - コピー.resx」を右クリック - 名前の変更 で、「Resource.ja-JP.resx」に名前を変更
    9.ソリューションエクスプローラの「Resource.ja-JP.resx」を開き
    名前 : msg_oftotalRAMusage , 値 : RAM使用量 を入力、アクセス修飾子:Internalのまま、リソースの追加を押す。


    2017年10月3日 2:29
  • > 1.表示 - ソリューションエクスプローラ を選択
    > 2.xxxx下のPropertiesを右クリック - 追加 - 新しい項目を選択し、「新しい項目の追加 - xxxx」を表示する。
    > 3.インストール済 - Visual C# アイテム - リソースファイル を選択。
    > 4.名前に「Resource.resx」を入力
    > 5.[追加(A)]ボタンを押下。

    VS2017 で変わったのかどうかわかりませんが、上記は間違いないですか?

    自分の VS2015 Community Update 3 では Windows Forms アプリのテンプレートを使ってプロジェクトを生成した場合は、以下の画像のように Properties フォルダには最初から Resources.resx と Resources.Designer.cs が生成されています。(青線で囲った部分)

    また、そもそも、ソリューションエクスプローラーの Properties を右クリックでは[追加(D)]のメニューは現れません。

    > 7.ソリューションエクスプローラの「Resource.resx」を右クリックし、コピーを選択。
    > 8.「Resource - コピー.resx」を右クリック - 名前の変更 で、「Resource.ja-JP.resx」に名前を変更

    VS2017 では 1 ~ 5 が可能だとしても、7, 8 のやり方は間違ってます。

    [追加(D)]のメニューから新たに「リソースファイル」を追加します。その際名前を「Resource.ja-JP.resx」にします。(注:その際追加されるのはリソースファイル .resx のみで、厳密に型指定されたリソースクラス .Designer.cs は追加されません・・・それが正しい結果です)

    ただし、自分の環境では Properties フォルダでは[追加(D)]メニューは開けないので、Properties フォルダではその作業はできないのですが。

    自分はどうしているかと言うと、上の画像のソリューションエクスプローラーの赤線で囲った部分のように、プロジェクトのフォルダ直下に作るようにしています。(別のフォルダを作ってそこに入れてもいいですが)


    • 編集済み SurferOnWww 2017年10月3日 4:34 typo 訂正&追記
    • 回答としてマーク lga_im 2017年10月4日 2:09
    2017年10月3日 3:42
  • SurferOnWwwさま

    ありがとうございます。ご指摘の方法で無事言語切り替えできました。

    試行錯誤で関係の無いところまで変更したりして遭難しかかっていました。

    本当にありがとうございます。

    2017年10月4日 2:12