nie jest to showstopper, ale podczas używania nuget w projekcie tworzy plik packages.config z tym kształtem
<?xml version="1.0" encoding="utf-8"?>
<packages>
... your packages
</packages>
to daje ostrzeżenie w VS
The 'packages' element is not declared.
Myślę, że pochodzenie problemu ma coś wspólnego z deklaracją XML.
Myślę też, że domyślny pakiet definicji nie powinien generować ostrzeżeń.
Czy ktoś wie, na co mam to zmienić, żeby nie dostać tego ostrzeżenia? (tj. nawet jeśli widzę go tylko wtedy, gdy plik jest otwarty, wyświetla się również jako ostrzeżenie przy włączonych pewnych regułach urzędu certyfikacji).
xml
visual-studio
nuget
okrągły kryzys
źródło
źródło
Odpowiedzi:
Zawsze możesz utworzyć prosty schemat xsd dla „packages.config”, aby pozbyć się tego ostrzeżenia. Aby to zrobić, utwórz plik o nazwie „packages.xsd”:
Lokalizacja tego pliku (dwie opcje)
packages.xsd
w wielu projektach, przenieś go do folderu Schematy programu Visual Studio (ścieżka może się nieznacznie różnić, toD:\Program Files (x86)\Microsoft Visual Studio 10.0\Xml\Schemas
dla mnie).Następnie edytuj
<packages>
tag wpackages.config
pliku (dodajxmlns
atrybut):Teraz ostrzeżenie powinno zniknąć (nawet jeśli plik packages.config jest otwarty w Visual Studio).
źródło
targetFramework
atrybutu u w pliku schematu xml. Otrzymuję błądtargetFramework attribute is not defined
Zobaczysz to tylko wtedy, gdy plik jest otwarty. Po zamknięciu pliku w programie Visual Studio ostrzeżenia znikną
http://nuget.codeplex.com/discussions/261638
źródło
nuget
inuget
wie, jak się do tego pliku bardzo dobrze.Właściwie poprawną odpowiedzią na to jest po prostu dodanie schematu do dokumentu, w ten sposób
...i jesteś skończony :)
Jeśli XSD nie jest jeszcze buforowany i niedostępny, możesz dodać go w następujący sposób z konsoli NuGet
Gdy to zrobisz, jak zaznaczono w komentarzu poniżej, możesz przenieść go z bieżącego folderu do oficjalnego folderu schematu, który znajduje się w
źródło
Żadna z odpowiedzi nie rozwiąże Twojego problemu na stałe. Jeśli przejdziesz do ścieżki dodawania XSD (z menu Xml wybierz "Utwórz schemat"), będziesz miał problemy z menedżerem pakietów, ponieważ wyczyści on twój plik packages.config po dodaniu nowego pakietu.
Najlepszym rozwiązaniem jest po prostu zignorowanie i zamknięcie pliku, gdy go nie używasz.
źródło
Problem w tym, że potrzebujesz schematu xsd dla
packages.config
.Oto jak możesz stworzyć schemat ( znalazłem go tutaj) :
Otwórz plik konfiguracyjny -> XML -> Utwórz schemat
Spowoduje to utworzenie
packages.xsd
dla Ciebie i otwarcie go w programie Visual Studio:W moim przypadku
packages.xsd
powstał pod tą ścieżką:C: \ Users \ MyUserName \ AppData \ Local \ Temp
Teraz nie chcę odwoływać się
packages.xsd
do folderu Temp, ale chcę, aby został dodany do mojego rozwiązania i dodany do kontroli źródła, aby inni użytkownicy mogli go pobrać ... więc skopiowałem gopackages.xsd
i wklejiłem do folderu mojego rozwiązania. Następnie dodałem plik do mojego rozwiązania:1. Skopiuj
packages.xsd
do tego samego folderu, w którym znajduje się rozwiązanie2. W VS, kliknij prawym przyciskiem myszy rozwiązanie -> Dodaj -> Istniejący element ..., a następnie dodaj
packages.xsd
Więc teraz stworzyliśmy
packages.xsd
i dodaliśmy go do rozwiązania. Wszystko, co musimy zrobić, to powiedzieć plikowi konfiguracyjnemu, aby używał tego schematu.Otwórz plik konfiguracyjny, a następnie z górnego menu wybierz:
XML -> Schematy ...
Dodaj swój
packages.xsd
i wybierz Użyj tego schematu (patrz poniżej)źródło
Dzieje się tak, ponieważ VS nie zna schematu tego pliku. Zauważ, że ten plik jest bardziej szczegółowym opisem implementacji, a nie czymś, co zwykle musisz otwierać bezpośrednio. Zamiast tego możesz użyć okna dialogowego NuGet do zarządzania pakietami zainstalowanymi w projekcie.
źródło
To działa i pozostaje nawet po dodaniu nowego pakietu:
Dodaj następujący tekst! DOCTYPE nad elementem <packages>:
źródło