- C#, C♯, C#相談室 Part84
578 :デフォルトの名無しさん[sage]:2014/09/07(日) 01:39:26.10 ID:HbYwcme0 - C#の自作 Formアプリ.exe と、自作の クラス.dll を
ILMerge.exe で合体できたのですが、 Fromアプリ.exe の Main() の先頭で Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("en"); のように言語を英語に変えているのですが、合体前は上手く日本語から英語に変わったのに、 合体後は日本語のままです。ILMerge.exe使うとこういうこと起こりますか? 解決方法ありますか?
|
- C#, C♯, C#相談室 Part84
580 :デフォルトの名無しさん[sage]:2014/09/07(日) 02:53:00.92 ID:HbYwcme0 - >>579
レスありがとうございました。 >まず自分を疑おう。 そうでした。 >カルチャ変更後のカレントカルチャ出力したら変わってないの? 変わっていました。 >ローカライゼーションは何を使ってんの? 既定と英語です。 >自作?サテライトアセンブリ? 日本語と英語の多国語対応のFormを初めて作ったので、サテライトアセンブリ というような用語も今初めて知ったのですが、プロジェクトのフォルダには リソースファイルが2つ出来ていて Resources.resx Resources.en.resx があります。 ILMergeする前は、カルチャ変更でリソースが切り替わっていたのですが、 ILMergeしたら、いつも日本語リソースが読み込まれているようです。 どうしたら良いでしょうか?
|
- C#, C♯, C#相談室 Part84
584 :デフォルトの名無しさん[sage]:2014/09/07(日) 06:06:34.97 ID:HbYwcme0 - >>582
わざわざ実験して頂いてありがとうございます。 教えて頂いたアドバイスを元に試行錯誤しているのですが、カルチャを"en"にしても マージ後のexeで英語リソースが読み込まれません。 実験のためにボタン1個だけのフォームと、簡単なクラス作って フォームは既定と英語の多言語設定にしました。 マージはこんなふうにしています。 ILMerge.exe /ndebug /targetplatform:v4 /out:MyFrom1Merge.exe MyFrom1.exe /log ClassLib1.dll プロジェクトはビルドすると、exeやdllは bin\Debug\MyForm1.exe bin\Debug\ClassLib1.dll bin\Debug\en\MyFrom1.resources.dll が出来ています。
|
- C#, C♯, C#相談室 Part84
585 :デフォルトの名無しさん[sage]:2014/09/07(日) 06:07:32.11 ID:HbYwcme0 - ↑の続き
582さんに教えて頂いたのは > ILMerge /out:A_merged.resources.dll A.resources.dll B.resources.dll のようにAとBの二つのリソースのdllがありますが、 私が実験で作ったプロジェクトでは、MyFrom1.resources.dll だけです。 この中に英語のリソースが入っているんですよね。 ILMergeをどのように実行すれば良いのか分りません。 それと、 >ちなみにマージドexeでも[プロセスにアタッチ]からのデバッグで例外ブレークポイント使って原因特定出来るね >Main先頭でメッセージボックス表示して止まってる間にVSからアタッチすると楽 を試したのですが、アタッチするところまでは出来たのですが、例外ブレークポイントというのは使った事が ないのでやり方が良く分りませんでした。
|
- C#, C♯, C#相談室 Part84
606 :デフォルトの名無しさん[sage]:2014/09/07(日) 14:23:57.06 ID:HbYwcme0 - 594さん、
わざわざ実験して頂きまして大変有難うございます。 >とりあえず実行時にはMyFrom1Merge.resources.dllが必要で、 >プロジェクトのプロパティからアセンブリ名を変え(MyFrom1Merge)てビルドすれば得られるよ >そのDLLは退避しておいて実行フォルダに配置ね この方法で出来ました!でも、DLLは実行フォルダではなくて MyFrom1Merge.exe en\MyFrom1Merge.resources.dll のように、enフォルダの中に置く必要がありました。 >サテライトアセンブリが1つでもマージ出来たよ >ILMerge.exe /ndebug /targetplatform:v4 /out:MyFrom1Merge.resources.dll MyFrom1.resources.dll /log 私も試してみましたが、確かにマージは出来ますが、私の場合は上で報告したように、 実行フォルダ下のenフォルダに英語リソースファイルが無いと、リソースが有効にはならないようで、 カルチャをenにしても日本語になってしいました。 というわけで、ほぼやりたいことが出来ましたが、enフォルダにリソースを置く必要があるので、 この点をどうにか解決したいです。
|
- Visual Studio 2013 part4
608 :デフォルトの名無しさん[sage]:2014/09/07(日) 20:04:18.34 ID:HbYwcme0 - VS2013で既定の設定を『VB』にしていて、それを『全般的な設定』
に変えたいのですが、設定をリセットしてやり直せば出来るのは 知っているのですが、でもそうすると、それ以外のメニューや ツールのアイコンなど自分で設定した内容もリセットされてしまいます。 どうすれば、これらを保存したまま、既定の設定を変えられますか?
|
- Visual Studio 2013 part4
610 :デフォルトの名無しさん[sage]:2014/09/07(日) 20:24:51.13 ID:HbYwcme0 - >「全般」にしたい部分
インポートの時に、それがどのチェックボックスの項目 に該当するのか分りません。 どれなのか教えてください。
|
- Visual Studio 2013 part4
612 :デフォルトの名無しさん[sage]:2014/09/07(日) 20:40:52.24 ID:HbYwcme0 - 教えてくれよ。さっぱりわからない。もう30回くらいリセットして
インポートし直しているが分らない。
|