2017-05-05 5 views
4

In meinem Klassenbibliotheksprojekt .NET Core wird die Ressourcendatei nicht aktualisiert, wenn der Ressourcendateiname einen Punkt enthält. Wenn ich beispielsweise Resources.en.resx oder Resources.es.resx Dateien im .NET Core-Projekt hinzufüge, kann das benutzerdefinierte Tool die C# -Ressourcendatei nicht generieren oder aktualisieren. Hier ist die Fehlermeldung:.NET Core 1.1-Ressourcendatei Problem

Benutzerdefiniertes Tool ResXFileCodeGenerator konnte keine Ausgabe für die Eingabedatei 'Resources.en.resx' erzeugen, protokollierte jedoch keinen spezifischen Fehler.

Wenn Sie irgendeine Abhilfe oder eine Lösung für sie wissen, bitte zeigen Sie mir freundlicherweise die richtige Richtung

Antwort

0

Löschen Sie alle RESX-Dateien in Ihrem Resources Verzeichnis.

Jetzt gehen Sie zu Ihrem Resources Verzeichnis und klicken Sie rechts für Add > New Item.

Wählen Sie Resource File und geben Sie einen Dateinamen am unteren Rand des Formulars ein. Es ist wichtig, dass Sie den Namen gleich beim ersten Mal erhalten und nicht umbenennen. Sie können etwas wie Resource.resx verwenden.

Diese erste Resource.resx Datei sollte eine eigene Designer-Klasse haben. Es benötigt auch alle Schlüssel und Werte für die Lokalisierung für Ihr Projekt. Wenn Sie also eine Resource.en.resx haben, können Sie die Werte kopieren und in diese einfügen.

Wenn Sie IStringLocalizer<Resource> oder, mit anderen Worten benötigen, müssen Sie irgendwie die Resource Klasse verweisen, dann werden Sie zu Lösung Explorer und gehen müssen Linksklick auf die Resource.resx. In der Box Eigenschaften gibt es ein Feld namens "Benutzerdefiniertes Werkzeug". Wenn Sie möchten, dass aus dem ResX eine öffentlich zugängliche Klasse generiert wird, müssen Sie dies von ResXFileCodeGenerator zu PublicResXFileCodeGenerator ändern.

Jetzt können Sie die einzelnen Resource.ja.resx, Resource.es.resx Dateien hinzufügen. Diese tun nicht müssen ein benutzerdefiniertes Tool ResXFileCodeGenerator auf ihnen laufen lassen, damit Sie das aus den Eigenschaften entfernen können. Dies wird Ihre Fehlermeldung beheben.

+0

Ihre Lösung funktioniert großartig. Danke vielmals. –

+0

Jetzt habe ich drei Dateien: (1) Resource.resx, (2) Resource.en.resx und (3) Resource.es.resx. Die Resource.resx-Datei enthält alle Schlüssel vand Werte in Englisch. Da es sich standardmäßig um eine englische Sprache handelt, handelt es sich nicht um eine Duplizierung, um eine Resource.en.resx-Datei zu erstellen? Ich verstehe, dass Resource.resx für Invarianzkultur ist. –

+0

Hi @Seth können Sie 'Resource.en.resx' löschen, wenn es die Standardsprache ist. Fügen Sie einfach die Standardzeichenfolgen in 'Resource.resx' ein –