Frage

Ich arbeite an der Lokalisierung für eine asp.net-Anwendung, die aus mehreren Projekten besteht.

Dafür gibt es einige Strings, die in mehreren dieser Projekte verwendet werden.Natürlich würde ich es vorziehen, in jedem Projekt nur eine Kopie der Ressourcendatei zu haben.

Da die Ressourcendateien keinen Namensraum haben (zumindest soweit ich das beurteilen kann), kann nicht wie auf normale Klassen auf sie zugegriffen werden.

Gibt es eine Möglichkeit, auf Resx-Dateien in einem anderen Projekt innerhalb derselben Lösung zu verweisen?

War es hilfreich?

Lösung

Sie können einfach ein Klassenbibliotheksprojekt erstellen, dort eine Ressourcendatei hinzufügen und dann auf diese Assembly verweisen, um allgemeine Ressourcen zu finden.

Andere Tipps

Ich habe diese Lösung schon einmal verwendet, um eine assembly-info.cs-Datei für alle Projekte in einer Lösung freizugeben, von der ich annehme, dass das Gleiche auch für eine Ressourcendatei funktionieren würde.

Erstellen Sie eine verknüpfte Datei für jedes einzelne Projekt/jede Klassenbibliothek.Es wird nur eine Kopie geben und jedes Projekt wird zur Kompilierungszeit über eine verknüpfte Datei einen Verweis auf den Code haben.Es ist eine sehr elegante Lösung, um gemeinsam genutzte, nicht öffentliche Ressourcen zu lösen, ohne Code zu duplizieren.

<Compile Include="path to shared file usually relative">
  <Link>filename for Visual Studio To Dispaly.resx</Link>
</Compile>

Fügen Sie diesen Code zur kompilierten Elementgruppe einer CSPROJ-Datei hinzu und ersetzen Sie dann die Pfade durch Ihre tatsächlichen Pfade zu den Resx-Dateien, und Sie sollten sie öffnen können.

Sobald Sie dies für eine Projektdatei getan haben, sollten Sie in der Lage sein, die verknüpfte Datei zu kopieren und in andere Projekte einzufügen, ohne das csproj hacken zu müssen.

Einige nützliche Ratschläge, wie Sie mit einer solchen Situation umgehen können, finden Sie hier:

http://www.codeproject.com/KB/dotnet/Localization.aspx

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top