2010-10-05 42 views
6

Tôi có một mục tiêu msbuild và nó có một thẻ nhập như thế này:MSBuild: Nhận thư mục hiện các mục tiêu

<Import Project="$(MSBuildExtensionsPath)\Company\Company.LifeCycle.targets" /> 

Trong nội dung của file Company.LifeCycle.targets, làm thế nào tôi có thể nhận programatically thư mục hiện hành (trong trường hợp này là: C: \ Program Files \ MsBuild \ Company) ??

tôi sử dụng VS 2008, .NET 3.5

Edit: Tôi đã thấy các tài liệu tham khảo, How can I get current directory in msbuild script?, nhưng không có giá trị đối với tôi: $ (MSBuildProjectDirectory cho tôi giá trị này, C: \ làm việc \ Công ty \ Projects \ Test001 \ ProyectSW3

Trả lời

2

câu hỏi của bạn đã được trả lời trong bài khác ở đây:.. MsBuild: Get current directory of targets tôi hy vọng câu trả lời có làm bạn hài lòng

bạn có khá nhiều sử dụng MSBuildProjectDirectory mà sẽ cung cấp cho bạn đường dẫn đến tập tin dự án hiện tại của bạn và bạn có thể xây dựng trên đó.

8

Với MSBuild 4 bạn có thể sử dụng thuộc tính mới 'MSBuildThisFileDirectory' xem blog của tôi http://sedodream.com/2010/03/11/MSBuild40ReservedProperties.aspx. Nếu bạn không sử dụng MSBuild 4, bạn không thể làm điều này một cách dễ dàng.

+0

Tôi sử dụng msbuild 3.5; mã nguồn không có sẵn để có được thuộc tính mới 'MSBuildThisFileDirectory' như MsBuild Community Tasks hoặc một phần mở rộng khác trong codeplex ?? – Kiquenet

+1

Đây không phải là bản cập nhật cho MSBuild. Thay vì nhận được đường dẫn nó cần phải được thông qua trong một tài sản. –

+0

@SayedIbrahimHashimi, blog của bạn không rõ ràng về cách chạy dự án mẫu ở đó để xem các thuộc tính được bảo lưu. –

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