7

Praca z MVC4 i VS2012, używam pliku Service Reference, który automatycznie generuje plik Reference.cs. Kiedy budować, mam dziesiątki ostrzeżeń jak błędów, które czytająPomijanie ostrzeżenia Xml dla pliku ServiceReference .cs

„Missing komentarz XML publicznie widoczne typu lub członek ...”

znalazłem podobną odpowiedź here, która odwołuje się do Obejście znaleźć w tym blog, co sugeruje, dodając następującą poprawkę do pliku CSProj:

<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="XamlMarkupCompilePass1"> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do echo #pragma warning disable > %%f.temp" /> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do type %%f >> %%f.temp" /> 
    <Exec Command="for %%f in (@(XamlGeneratedCodeFiles)) do copy /y %%f.temp %%f" /> 
    <Message Text="XamlGeneratedCodeWarningRemoved: @(XamlGeneratedCodeFiles)" /> 
    </Target> 

Ale to nie wydaje się do pracy z plikiem Reference.cs, prawdopodobnie dlatego, jest kierowany na Xaml? Czy ktoś może mi powiedzieć, jak mogę to naprawić, aby pracować z plikiem Reference.cs lub zaproponować inny sposób obejścia tego problemu?

Nie mogę po prostu dodać pragma disable do wygenerowanego automatycznie kodu lub wyłączyć komentarzy Xml.

Odpowiedz

6

Aktualizacja wstępnie wygenerowanych plików .cs w locie będzie cause all sorts of issues with Visual Studio, since it will use the in-memory copy of the files. I będzie to bardzo irytujące ze względu na integrację Source Control, która sprawia, że ​​pliki są tylko do odczytu i wymagają, aby pliki były sprawdzane po każdym kompilacji.

Możesz również ustawić swojego Klienta Usługowego w sposób wewnętrzny, dostosowując jego właściwości. W zależności od ustawień generowanie dokumentacji nie będzie narzekać na żadną metodę, która nie jest widoczna z zewnątrz. To może nadal wywoływać ostrzeżenia StyleCop, Code Analysis lub Resharper chociaż ...

Więc zwykle robię to, że zostawiam Referencje usługi w ich własnym projekcie Visual Studio, generuję wygenerowany kod jako Publiczny i wyłączam generowanie dokumentacji dla cały projekt. To ma również tę zaletę, że odniesienie usługa będzie korzystać z tych samych wiązań niezależnie od projektu dołączyć go w.

+0

fajny pomysł Jesse, spróbuję. Ale na pewno istnieje lepszy sposób rozwiązania tego problemu niż przeniesienie odniesienia do usługi do własnego projektu? Nie wiem zbyt wiele o plikach CSProj czy MSBuild, ale po przeczytaniu strony z linkami zastanawiam się, czy prebuild może być ukierunkowany za pomocą podobnego przykładu, jak w moim pytaniu? – DevDave

+1

Tak, może, ale w rezultacie integracja z kontrolą kodu źródłowego zostanie przerwana. Każda kompilacja spowodowałaby szereg oczekujących zmian. Możesz uczynić swój kod inteligentnym, aby nie był on ponownie aktualizowany, co powinno działać. Wolę to jednak, o wiele łatwiejsze do skonfigurowania i łatwiejsze do zrozumienia dla wszystkich zaangażowanych członków projektu. – jessehouwing

+0

Dzięki za odpowiedź. Być może będę musiał zadać inne pytanie, ale tylko zastanawiam się, jak obejdziesz ostrzeżenia StyleCop tym samym generowanym kodem? Jak już mam to oczekiwać, kiedy rozwiążę ten problem! – DevDave

1

uważam również, że mogę ustawić Service Reference jak Internal na stworzenia, które dostaje się wokół problemu Xml podsumowania.

Mimo to nadal pozostawia mi problem z tłumieniem StyleCop błędów generowanego kodu, ale utworzę dla niego nowe pytanie.

+1

Przypis: To może nie działać, ponieważ wygenerowane zdarzenia są oznaczone jako publiczne, nawet jeśli odwołanie do usługi jest wewnętrzne. –