MVC, niepoprawne ścieżki w pliku *.csproj.

Odpowiedz Nowy wątek
2019-10-22 20:51
0

Drodzy Koledzy,

zetknąłem się właśnie z dość irytującym problemem polegającym na tym, że w projekcie aplikacji MVC mam w strukturze pliku .csproj odnośniki do widoków, które nie zostały w poprawny sposób usunięte. Są widoczne w Solution Explorerze jako pełnoprawne elementy projektu ale próba ich otworzenia skutkuje takim błędem:
screenshot-20191022204837.png
Po usunięciu pliku z .csproj problem ten znika. Może się on jednak powtórzyć w przyszłości o co nie trudno wobec tego zastanawiam się czy jest możliwość napisania testu jednostkowego, który sprawdzi mi każdy widok w projekcie? A może jest na to inny i lepszy sposób?

Będę wdzięczny za wszelkie wskazówki.
Pozdrawiam,
Dawid.

Pozostało 580 znaków

2019-10-22 21:29
0

Nie wiem czy doprecyzowałem - chodzi mi o sprawdzenie czy rzeczywiście ścieżka zawarta w csprojce prowadzi do pliku na dysku czy może jest martwa jak w przykładzie wyżej. Pomyślałem, że można by zwyczajnie wyciągnąć informację wczytując w kodzie plik csproj jako tekst i czytając linijka po linijce wszystkie ścieżki zawierające cshtml sprawdzać czy prowadzą do pliku na dysku.
Może jednak jest na to sprytniejszy sposób wykorzystujący moce i ficzery dostarczane bezpośrednio przez mvc?

Pozostało 580 znaków

2019-10-23 09:20
0

Kontynuując temat napisałem sobie program, który sprawdza mi fizyczną obecność ścieżek i zaciąłem się przy regexie. Otóż z csprojki chcę sobie wyciągnąć ścieżkę względną i np. z takiej:

<Content Include="Areas\JakiesArea\Views\JakisKontroler\JakisWidok.cshtml" />

chcę otrzymać treść pomiędzy cudzysłowami, czyli: Areas\JakiesArea\Views\JakisKontroler\JakisWidok.cshtml
Mam regexa: ".*" i on zwraca mi to co wyżej plus apostrofy: "Areas\JakiesArea\Views\JakisKontroler\JakisWidok.cshtml"
W jaki sposób przebudować regexa żeby zignorował mi apostrofy? Próbuję ułożyć na https://regex101.com/ ale nie mogę trafić.

edytowany 1x, ostatnio: dawid75_75, 2019-10-23 09:22

Pozostało 580 znaków

2019-11-08 01:11
0

@dawid75_75: użyj tego: "(?<path>.*)", wtedy ścieżka bez cudzysłowów będzie w grupie path.

A najlepiej wczytaj ten plik jako XML i przetwórz w LINQ.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
edytowany 1x, ostatnio: somekind, 2019-11-08 01:11

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0