2013-01-04 17 views
7

Tôi đã phát triển một tiện ích dòng lệnh nhận các hội đồng .NET làm đầu vào và tạo XML làm đầu ra để sử dụng bởi một sản phẩm khác.Cung cấp công cụ dòng lệnh qua NuGet để sử dụng trong các sự kiện sau khi xây dựng trong Visual Studio

Lý tưởng nhất là tôi muốn có nó:

  • Delivered qua NuGet như là một gói giải pháp cấp
  • khuyết tật này tại hậu xây dựng các sự kiện ở cấp dự án
  • Bit nơi tôi đang mắc kẹt: Có thể truy cập trong sự kiện sau khi xây dựng đó chỉ bằng cách chỉ định tên lệnh mà không có đường dẫn
    • tức là MyTool.exe/i $ (TargetPath) như trái ngược với .. \ gói \ toolName-1.0.0.0 \ tools \ MyTool.exe/i $ (TargetPath)

Hai điều đầu tiên tôi đã có thể làm, và sau sự kiện xây dựng lệnh như ở trên chỉ hoạt động tốt nhưng chỉ khi tôi mở Package Manager Console lần đầu tiên (ngay cả khi tôi không gõ bất kỳ lệnh nào, chỉ cần mở nó) - dường như nó đang làm điều gì đó tuyệt vời với đường dẫn khi nó kích hoạt để tôi không có để chỉ định .. \ packages \ ToolName-1.0.0.0 \ tools \ MyTool.exe. Có thể cho gói NuGet của tôi sử dụng tập lệnh Init.ps1 (hoặc một số cơ chế khác) để điều chỉnh đường dẫn sao cho tôi không cần chỉ định đường dẫn tương đối đầy đủ cho công cụ khi viết sự kiện sau xây dựng, hoặc nếu không, hãy bao gồm công cụ chạy dưới dạng bước đăng tự động?

Lưu ý - Tôi chấp nhận NuGet có thể không phải là vector lý tưởng để phân phối loại công cụ này, nhưng sẽ thuận tiện.

Trả lời

-2

Điều này có thể giúp bạn -> http://lostechies.com/joshuaflanagan/2011/06/24/how-to-use-a-tool-installed-by-nuget-in-your-build-scripts/

tôi đã sử dụng giải pháp với các ký tự đại diện trong 'CD' lệnh, vì vậy postbuild của tôi trông như thế này:

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

Điều đó sẽ giúp ích nếu người cài đặt gói được sử dụng làm lệnh sau khi xây dựng (vì vậy tôi có thể cập nhật tài liệu của công cụ để phản ánh), nhưng không thêm thư mục của công cụ vào đường dẫn gốc mục đích. Lưu ý tôi đang viết gói chứ không phải là tiêu thụ nó, vì vậy mục tiêu là làm điều gì đó với tư cách là một người viết gói để làm cho nó dễ dàng nhất có thể để tiêu thụ gói trong bước sau xây dựng. – Pablissimo

0

Chocolatey (mà về mặt kỹ thuật đủ điều kiện như sử dụng NuGet) có một cơ sở "shimming" rất huyền diệu.

Tóm lại, mọi tệp thực thi trong gói của bạn sẽ tự động có sẵn trên PATH. It's very cool.

Các vấn đề liên quan