2014-05-12 31 views
5

Pracuję z projektem, który używa zarówno C++ jak i C#. Pracowałem nad ogromną niechlujną integracją i intensywnie korzystam z wiadomości #pragma, aby wywołać kod, który nie jest jeszcze w pełni funkcjonalny (zerwany w wyniku integracji). To naprawdę dobry sposób na zagospodarowanie dziennika budowy, aby łatwo było znaleźć rzeczy, które wymagają naprawy. Problem polega na tym, że nie mogę znaleźć niczego, co działa tak samo dla C#.Czy jest coś podobnego do wiadomości #pragma?

Nie chcę używać przestarzałego atrybutu, to wcale nie jest to, czego szukam. Próbowałem #warn, ale to generuje "ostrzeżenie jako błąd", które nie powiedzie się. Ponownie, nie to, czego szukam (mógłbym użyć #error, jeśli chciałem zepsuć kompilację ...).

Na razie umieszczam moje wiadomości w komentarzach, które można wyszukiwać, ale wymaga to trochę wiedzy na temat tego, czego szukać, jak również motywacji, aby je szukać. Wywoływanie problemów z niestandardową wiadomością w dzienniku budowy jest znacznie lepsze, ponieważ trudno je zignorować!

Moje badania prowadzą mnie do przekonania, że ​​nie ma sposobu, aby zrobić to, co chcę, ale chciałem sprawdzić, czy eksperci zgadzają się ze mną, czy nie. :)

+0

Rzeczą, którą Microsoft chciałby zrobić, to utworzenie elementów Team Foundation Server dla wszystkiego, co chcesz później dotknąć. Nie wiem, czy jest sposób, aby zrobić to bezpośrednio w kodzie, przepraszam. – rumtscho

+1

Podobnie jak @ LB2 powiedział, co jest nie tak z '# warning'. Dla mnie robi dokładnie to, produkuje ostrzeżenie; nie zawiedzie kompilacji. – MicroVirus

+0

#warning nie zawiedzie kompilacji. Tworzy ostrzeżenie tylko podczas kompilacji. –

Odpowiedz

1

#warning robi dokładnie to, co chcesz: generuje ostrzeżenie kompilacji. To nie zawiedzie kompilacji.

Być może masz włączone ustawienie, aby traktować ostrzeżenia jako błędy? To ustawienie można znaleźć w konfiguracji projektu | Utwórz kartę.

+0

Problem polega na tym, że gdy otrzymujesz projekt kogoś innego z ponad tysiącem ostrzeżeń, ostrzeżenie zdefiniowane przez użytkownika nie wykona zadania. – Szybki

+2

@Szybki Jeśli otrzymasz dużo ostrzeżeń w języku C#, prawdopodobnie masz większe problemy. Co więcej, ostrzeżenia są po to, aby Cię ostrzec, więc jeśli zaczynasz tęsknić za ostrzeżeniami z powodu ich ilości, wtedy każde ostrzeżenie jest bezużyteczne, nie tylko przez użytkownika #pragma, i znowu masz większe problemy. – MicroVirus

6

I zazwyczaj użyć następującego kodu:

#warning //Todo Finish this method by.... 

#warning nie muszą być traktowane jako błąd, to jest konfigurowane w każdym projekcie pod konfiguracji projektu | Budowanie zakładka:

enter image description here

z opisem w ostrzeżeniu dzienniku kompilacji powinien wyglądać następująco:

enter image description here

Dodatkowo komentarz //Todo doda opis do wbudowanego lista zadań umożliwiająca rozróżnienie ostrzeżeń kompilatora i ostrzeżeń kompilatora ustawianych przez użytkownika:

enter image description here