Chcę umieścić metadane we wszystkich plikach Resx w rozwiązaniu. Czy wydaje się to może być realizowane za pomocą elementu metadata
zawarte w osadzonym XSD dla plików RESX:Jak dodać metadane do plików Resx?
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
nie jestem w 100% pewien, że element metadata
powinien być używany do przechowywania dowolnego metadane, bo nie był w stanie znaleźć dokumentację na temat jej zamierzonego celu. Ale działa tak dobrze, jak długo pliki resx są edytowane za pomocą edytora tekstu.
Problem powstaje podczas edytowania pliku resx w programie Visual Studio 2013. Domyślnym sposobem otwarcia zasobu jest "Edytor zasobów zarządzanych". Niestety, Managed Resource Editor nie rozróżnia danych i metadanych. Powoduje to dyskretną zmianę metadanych na dane dotyczące składowania. Ten błąd (a może zamierzony projekt) istnieje od at least 2010.
Próbowaliśmy również dodawać elementy, których Edytor zasobów zarządzanych nie rozpoznał, ale te elementy zostały usunięte podczas składowania. To samo stało się z komentarzami XML. To zachowanie jest bardziej zrozumiałe, ale nie pozostawia nam wiele dobrych opcji.
Oto możliwe rozwiązania Jestem świadomy:
- Mandatu, że nikt nie może korzystać z zarządzanych zasobów Editor. To może być w porządku, jeśli to tylko ja, ale nie mogę wymagać tego od całego zespołu. Edytor zasobów zarządzanych jest zbyt przydatnym narzędziem.
- Wymagaj, aby wszyscy ręcznie naprawiali metadane po użyciu Edytora zarządzanych zasobów. Jest to zbyt podatne na błędy i uciążliwe.
- Wyślij problem do zespołu Visual Studio. Będziemy to robić, ale potrzebujemy rozwiązania, podczas gdy czekamy i nie ma żadnych gwarancji, że poprawka kiedykolwiek nadejdzie.
- Edytor zasobów zarządzanych wideł, który zachowuje się tak, jak chcemy. Nie mogłem znaleźć źródła i prawdopodobnie ma problemy z licencjonowaniem. Nie jesteśmy też zainteresowani utrzymaniem rozwidlenia.
- Napisz własną wersję edytora zarządzanych zasobów. To jest jak powyższa opcja, ale o wiele więcej pracy, niż jest to warte dla naszego przypadku użycia.
- Wystarczy zapisać metadane w tagu
data
. To oczywisty hack.
Wygląda na to, że błąd tutaj nie występuje w samych plikach Resx, lecz w narzędziach Visual Studio wokół plików Resx. Jednak w najbliższym czasie nie odstępujemy od Visual Studio. Czy są jakieś rozwiązania, których mi brakuje?