Jak zrobić rozszerzenie xsd dla web / app.config schema?
Jak zrobić schemat dla niestandardowych sekcji konfiguracyjnych? Próbowałem zrobić jeden, ale kiedy go używałem, powiedział, że jedynym oczekiwanym elementem jest to, co mam w tym schemacie, i narzekał na standardową sieć.rzeczy config, mimo że nadal używałem normalnego DotNetConfig.plik xsd też.
3 answers
To pytanie, które znalazłem nie jest duplikatem, ale rozwiązanie rozwiąże twój problem:
Jak naprawić błąd:" nie można znaleźć informacji schematu dla atrybutu/elementu", tworząc schemat
Sztuką jest uzyskanie "właściwości" aplikacji.Edytor Konfiguracji i ustaw wartość Schemas
:
- kliknij prawym przyciskiem myszy -> właściwości w dowolnym miejscu w edytorze plików XML, lub po prostu naciśnij F4 , gdy jest w centrum uwagi
- W tym oknie, dodawanie lokalnego lub bezwzględnego odniesienia do pliku schematu
Oto przykład, w którympo prostu zacząłem pracować(bawię się Ninject i NLog). Elementy i atrybuty w sekcji nlog
wyświetlają się poprawnie w Intellisense, a ja dostaję krzywe linie, jeśli naruszam schemat.
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="eventLog" xsi:type="EventLog" log="Application"
category="TestService" />
<target name="file" xsi:type="File"
layout="${longdate}|${stacktrace}|${message}"
fileName="${logger}.txt" />
</targets>
<rules>
<logger name="*" minlevel="Info" writeTo="eventLog" />
<logger name="*" minlevel="Debug" writeTo="file"/>
</rules>
</nlog>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0" />
</startup>
</configuration>
Mój plik schematu znajduje się w katalogu głównym projektu, tuż obok aplikacji.config i wywołane NLog.xsd
. I po prostu zapisałem to stąd:
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:24
Może to tylko moje środowisko lub coś się zmieniło w. NET 4.6 (nie jestem pewien).
Aby intellisense mógł współpracować z nowo utworzoną aplikacją.plik konfiguracyjny...
Krok 1: Dodaj nową aplikację element.Config do Twojego rozwiązania.
Będzie to wyglądało tak, zwróć uwagę na błędy intellisense:
Krok 2: naciśnij F4 w edytorze, aby wyświetlić stronę Properites dokumentu XML:
Moje defaults były wyświetlane to:
Krok 3: Kliknij elipse po prawej stronie Schemas właściwości powyżej...
Sprawdź DonNetConfig.xsd, zamknij okno i zacznij wpisywać
koniec z błędami i działa intellisense...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-11 16:47:23
Kiedy próbowałem tego, nie zadziałało. System konfiguracji zakłada, że wszystko znajduje się w domyślnej przestrzeni nazw i dławi się, jeśli tak nie jest. To bardzo rozczarowujące.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-14 19:15:50