2013-03-18 11 views
7

Mam niestandardowy krok kompilacji w rozwiązaniu Visual Studio 2013. Niestandardowy krok budowania wywołuje skrypt Pythona w pliku tekstowym, który odwołuje się do kilku innych plików w moim rozwiązaniu. Chcę, aby niestandardowy krok budowania był wywoływany za każdym razem, gdy którykolwiek z tych plików ulegnie zmianie lub gdy brakuje pliku wyjściowego mojego skryptu. Jednak nie chcę ręcznie utrzymywać niestandardowych pól "dodatkowych zależności" i "wyjść".Czy istnieje sposób automatycznego generowania "dodatkowych zależności" dla "Kompilacji niestandardowej" w Visual Studio?

Mogę łatwo spowodować, że skrypt wygeneruje listę zależności w taki sam sposób, w jaki gcc może wygenerować plik .d po przekazaniu w -MM. Czy istnieje sposób, w jaki mogę użyć wyjścia .d mojego skryptu, aby automatycznie wypełnić "Dodatkowe zależności" w moim kroku budowania niestandardowego? Czy jest jakiś inny sposób na uniknięcie zachowaniu „dodatkowe zależności” i „Wyjścia” pola "?

help page tylko pokazuje, jak dodać pojedyncze pliki.

Odpowiedz

10

Zakładając, że skrypt do generowania .d plików może generować pliki dowolny format, który chcesz, powinieneś być w stanie osiągnąć wyniki, które są potrzebne przy wykorzystaniu Import elementu.

  1. napisać skrypt, który generuje niewielki plik projektu zamiast pliku .d wyjście skryptu byłby to mały plik projektu, który zawiera "dodatkowe zależności" i pola "wyjścia".
  2. Użyj znacznika , aby wygenerowany plik był zależny od głównego projektu.
  3. Uruchom skrypt zgodnie z potrzebami, gdy zmienia się skład zależności.

Dzięki temu podejściu można zachować główny plik projektu niezależnie od wygenerowanego automatycznie pliku zależności, który w razie potrzeby można ponownie wygenerować. Jedyną wadą jest to, że wygenerowany plik zależności jest plikiem projektu MSBuild, a nie czystym plikiem zależności. Jednak nie powinno to stanowić dużego problemu, ponieważ jesteś właścicielem skryptu, który generuje plik zależności.

+0

Czy naprawdę sądzisz, że skrypt, który tworzy dodatkowy plik projektu, aby później "zaimportować" go z głównego projektu, jest prostszym podejściem niż programowe dodawanie wymaganych zależności do pliku głównego projektu xml? – Pat

+5

@Pat Dlaczego, nie * myślę *, * wiem * dla faktu, że to podejście jest o wiele czystsze, a na dłuższą metę bardziej stabilne. – dasblinkenlight

+0

z całym szacunkiem Twoja odpowiedź nie jest dobra; zapraszam do programowego tworzenia nowego projektu do importowania projektu, do zaimportowania zależności za jego pomocą; moja odpowiedź bezpośrednio dodaje zależności do głównego pliku projektu; Myślę, że twoja odpowiedź nie konkuruje z moją; po prostu wziąłeś część mojej i uczyniłeś ją bardziej skomplikowaną i skomplikowaną. – Pat

Powiązane problemy