2017-01-30 10 views
0

ローカライズされたバージョンのリソースファイルを作成するバッチスクリプトを作成しようとしています。私はresgenに.NET衛星アセンブリのリソースが使用されていません

resgen.exe "My.Resources \ resources.ja-JP.resxを" "使用してリソースをコンパイルし、さまざまなMSDNの記事に続いてMy.Resources \ OBJ \ resources.ja-JP.resources"

その後、Alを使ってDLLを作成します。

al.exe "/ culture:ja-JP /keyfile:"ResourceKey.snk" /out:"bin\ja-JP\My.Resources.resources.dll "/ platform :x64 /template:"bin\My.Resources.resources.dll "/embed:"My.Operator.Resources\obj\resources.ja-JP.resources"

これらはすべてエラーなく動作し、署名付きしかし、私がテストプログラムを使ってiをテストするとt(これはMSDNの記事から取りました)、ローカライズされたリソースは見つかりませんが、代わりに汎用的な言語フォールバックが表示されます。 (私は、Visual Studioで生成されたもののローカライズされたdllをすべて正常に動作させる場合)

Visual Studioの出力を見ると、エラーなしでdllがロードされます。

(しかし、これはおそらく無関係である)

フュージョンログが問題(リソースDLLに関連する、すなわちエラーなしで沈黙していることが二回フォールバックリソースをロードしているように見えますデバッガでResourceManagerオブジェクトを見てみます。

は、誰もが私が間違っているのかについて何か提案はありますか?それはローカライズされたDLLを無視している理由についての更なる情報を提供するために、.NETを説得する方法はありますか?

感謝。

+0

テストプログラムで現在のカルチャーをどのように設定していますか? – Andy

+0

CurrentThred CurrentCultureとCurrentUiCultureを設定しています。 – MikeC

+0

VisualStudioで作成されたサテライトアセンブリを使用すると、翻訳されたリソースが表示されます。 VisualStudioが使用するコマンド(resgenand al0と私のスクリプトで使用されているもの)の主な違いはわかりません。 – MikeC

答えて

0

私は/ alampにテンプレートスイッチは、アプリケーションの実行可能ファイルを指定する必要がありますと思う。

ニュートラルリソースファイルを指定したようです。

これがエラーでない場合は、コマンドラインからmsbuildを使用してプロジェクトをビルドし、使用するコマンドラインを正確に調べることをお勧めします。