2017-05-05 43 views
4

.NET Coreクラスライブラリプロジェクトでは、リソースファイル名にドットが含まれているとリソースファイルが更新されません。たとえば、Resources.en.resxまたはResources.es.resxファイルを.NET Coreプロジェクトに追加すると、カスタムツールはC#リソースファイルを生成または更新できません。.NET Core 1.1リソースファイルの問題

カスタムツールResXFileCodeGeneratorは、入力ファイル 'Resources.en.resx'の出力を生成できませんでしたが、特定のエラーを記録しませんでした。あなたが任意の回避策またはそれのために任意の修正を知っていれば

、親切

答えて

0

は、現在お使いのResourcesディレクトリ内のすべての.resxファイルを削除し、正しい方向に私を指すください。

Resourcesディレクトリに移動し、Add > New Itemを右クリックします。

Resource Fileを選択し、フォームの下部にファイル名を入力します。名前を最初に取得し、名前を変更しないことが重要です。 Resource.resxのようなものを使用できます。

この最初のファイルResource.resxには、独自のデザイナクラスが必要です。プロジェクトのローカライゼーションにはすべてのキーと値も必要です。したがって、既存のResource.en.resxがある場合は、その値をコピーしてこの中に貼り付けることができます。

あなたがIStringLocalizer<Resource>を必要とするか、言い換えれば、あなたは何とかResourceクラスを参照する必要があるなら、あなたはResource.resxに、ソリューションエクスプローラと左クリックに行く必要があります。プロパティボックスには、「カスタムツール」というフィールドがあります。公開アクセス可能なクラスをresxから生成するには、ResXFileCodeGeneratorからPublicResXFileCodeGeneratorに変更する必要があります。

Resource.ja.resx,Resource.es.resx個のファイルを追加できます。これらはではありません。ではカスタムツールResXFileCodeGeneratorを実行する必要がありますので、プロパティから削除することができます。これにより、エラーメッセージが修正されます。

+0

あなたのソリューションは素晴らしいです。どうもありがとう。 –

+0

私は3つのファイルがあります:(1)Resource.resx、(2)Resource.en.resx、および(3)Resource.es.resx。 Resource.resxファイルには、すべてのキーと英語の値があります。それは英語のデフォルトですので、Resource.en.resxファイルを作成するのは重複していませんか?私はResource.resxが不変の文化のためであることを理解します。 –

+0

こんにちは@あなたが 'Resource.en.resx'をデフォルトの言語である場合に削除することができます。 'Resource.resx'のデフォルトの文字列を含めてください –

関連する問題