2013-01-04 11 views
7

Opracowałem narzędzie wiersza polecenia, które pobiera zespoły .NET jako dane wejściowe i generuje plik XML jako dane wyjściowe do użycia przez inny produkt.Dostarczanie narzędzia wiersza polecenia przez NuGet do użytku w zdarzeniach pokompilowanych w programie Visual Studio

Idealnie Musiałbym go:

  • Dostarczone przez Nuget jako pakiet rozwiązanie poziomu
  • Dostępna w post-zbudować zdarzeń na poziomie projektu
  • Bit gdzie utknąłem: Dostępna w takim przypadku post-build tylko poprzez podanie nazwy polecenia bez ścieżki
    • tj MyTool.exe/i $ (TargetPath) w przeciwieństwie do 012... \ Pakiety \ ToolName-1.0.0.0 \ Tools \ MyTool.exe/i $ (TargetPath)

Pierwsze dwie rzeczy mogę już zrobić, a komenda wydarzenie jako post-build powyżej działa dobrze, ale tylko wtedy, gdy po raz pierwszy otworzę konsolę Package Manager (nawet jeśli nie wpisuję żadnych poleceń, po prostu trzeba go otworzyć) - pozornie robi coś fajnego ze ścieżkami, gdy wystrzeliwuje, więc nie mam aby określić ... \ packages \ ToolName-1.0.0.0 \ tools \ MyTool.exe.

Czy mój pakiet NuGet może używać skryptu Init.ps1 (lub jakiegoś innego mechanizmu) w celu dostosowania ścieżek, tak że nie muszę podawać pełnej względnej ścieżki do narzędzia podczas pisania zdarzenia końcowego, lub w przeciwnym razie automatycznie włączyć narzędzie do uruchamiania jako etap końcowy?

Notatka- Akceptuję, że NuGet może nie być idealnym wektorem do dostarczania tego rodzaju narzędzi, ale byłoby to wygodne.

Odpowiedz

-2

To może pomóc -> http://lostechies.com/joshuaflanagan/2011/06/24/how-to-use-a-tool-installed-by-nuget-in-your-build-scripts/

użyłem rozwiązania z zamiennika w poleceniu 'cd', więc moja postbuild wygląda następująco:

CD "$(SolutionDir)packages\ToolName*\tools" 
MyTool.exe 
+0

To pomogłoby, gdyby osoba instalująca pakiet użyła tego jako polecenia po kompilacji (aby zaktualizować dokumentację narzędzia, aby to uwzględnić), ale nie dodaje folderu narzędzia do ścieżki, która była oryginalna. cel. Uwaga Piszę paczkę, zamiast ją spożywać, więc celem jest zrobienie czegoś jako pisarz paczek, aby jak najłatwiej było spożytkować paczkę w etapie późniejszym. – Pablissimo

0

Chocolatey (który technicznie kwalifikuje się jako za pomocą NuGet) ma bardzo fajny magiczny "shimming" obiektu.

W skrócie, każdy plik wykonywalny w pakiecie będzie dostępny automatycznie na ścieżce PATH. It's very cool.

Powiązane problemy