6

Zdecydowałem, że chcę przenieść niektóre reguły przepisywania do plików web.release.config i web.staging.config, aby zachować reguły przepisywania istotne dla środowisk, w których działają nasze różne konfiguracje.Jak włączyć IntelliSense w VS 2013 dla <rewrite> w transformacji .config?

IntelliSense nie lubił tę decyzję i nie grać w piłkę, ponieważ:

xdt: Transform "atrybut nie jest zadeklarowany"

dla elementu <rewrite>.

Spojrzałem na RuslanY's solution here i rozważałem kilka rozwiązań na tej stronie, ale żaden z nich nie dostarczył rozwiązania tego konkretnego problemu w VS 2013 z .NET v4.5. Przestudiowałem także this old MSDN post here i upewniłem się, że właściwość Schemas w plikach Web.config, Web.Staging.config i Web.Release.config wskazuje na poprawną wersję schematu transformacji.

Wydaje się, że jedynym rozwiązaniem jest, aby zmienić DotNetConfig [V] .XSD plików i dodać

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/> 

na końcu każdego <xs:complexType> w każdej <xs:element name="rewrite"> „elementów S (i <xs:element name="rewrite">” sam s znacznikiem) aby dostosować je do innych elementów, które mają dobry IntelliSense.

Czy to jest właściwe rozwiązanie w tym przypadku (ponieważ wydaje się dziwne, że te wpisy jeszcze nie istnieją)? Czy istnieje lepszy sposób dodania tych wpisów do plików xsd, aby nie zostały utracone podczas aktualizacji VS (a więc będą łatwiejsze do zastosowania przy instalacji VS)?

Czy istnieje inne rozwiązanie, które powinienem wdrożyć?

+1

Widzę ten sam komunikat ostrzegawczy, atrybut "transformacja Xdt: nie jest zadeklarowany", jednak transformacja wydaje się działać poprawnie. Wygląda na to, że Microsoft musi naprawić schematy. – PrgTrdr

+0

@PrgTrdr Z poprawką opisaną w powyższym pytaniu, o ile mogę powiedzieć w tej chwili ... dodam ją jako odpowiedź, gdy jestem bardziej pewny, że to nie wprowadza żadnych błędów. – lukkea

+0

Po prostu napotkałem ten sam problem w projekcie 4.5.1, a prostszym rozwiązaniem było Przekształcenie przepisanego elementu za pomocą "Zamień". – lukkea

Odpowiedz

0

Jak mówię w moim pytaniu: Wydaje się, że jedynym rozwiązaniem jest, aby edytować DotNetConfig [v] .XSD pliki i dodać

<xs:anyAttribute namespace="http://schemas.microsoft.com/XML-Document-Transform" processContents="strict"/> 

na koniec każdego <xs:complexType> w ramach każdego z elementów <xs:element name="rewrite"> „s (i sam znacznik <xs:element name="rewrite">), aby dostosować je do innych elementów, które mają dobry IntelliSense.