2011-02-11 20 views
24

Tôi đang chạy msbuild từ dòng lệnh như sau:msbuild -p: outputdir = c: mydir bị bỏ qua

msbuild mysolution.sln -p:outputdir=c:\mydir 

Khi tôi chạy này, outputdir đang được bỏ qua và mặc định theo quy định tại tệp csproj đang được sử dụng.

Tài liệu MSDN cho công cụ này nói rằng tôi có thể ghi đè thư mục xây dựng bằng thông số này. Tôi đang làm gì sai?

+1

Tôi đã tạo lỗi ở đây bằng cách sử dụng -p thay vì/p. Tài liệu MSDN cho tham chiếu dòng lệnh MSBuild (http://msdn.microsoft.com/en-us/library/ms164311.aspx) đề cập không chính xác đến outputdir. – Mike

+0

Thay vào đó, bạn nên đưa ra nhận xét và câu trả lời. –

Trả lời

61

Bạn nên sử dụng OutputPath và quan trọng hơn bạn nên sử dụng đúng cú pháp:

msbuild mysolution.sln /p:OutputPath=c:\mydir 
+0

Cảm ơn sự giúp đỡ của bạn về vấn đề này. Tôi nghĩ bạn có nghĩa là/p chứ không phải là -p khi bạn đề cập đến vấn đề cú pháp. Tôi đã thực sự sử dụng/p trong cmd.exe nhưng đã sai ở đây - quá nhiều PowerShell. Đối với Outputpath, chết trên. Cảm ơn. – Mike

+0

Nó cũng làm việc cho tôi .. Tôi đã usint/P: outputdir thay vì/p: outputpath –

+2

Đảm bảo thoát khỏi kết thúc '\'.'/ p: OutputPath = c: \ mydir' và NOT'/p: OutputPath = c: \ mydir \ ' –

2

Tôi tin rằng bạn nên sử dụng OutputPath.

8

Lưu ý rằng OutputPath được ưu tiên hơn OutDir. Các tài liệu được sử dụng là sai về điều này, nhưng tôi thấy rằng họ cuối cùng đã cố định nó.

Ngoài ra, rất khó để nói chính xác vấn đề là gì, vì bạn không hiển thị đường dẫn chính xác mà bạn đang truyền dưới dạng tham số. Có hai vấn đề có thể là tôi có thể tưởng tượng:

  1. Tùy chọn OutputPath xác định đường dẫn đến thư mục đầu ra tương đối so với thư mục dự án. Điều đó có nghĩa là bạn không thể đặt nó thành đường dẫn toàn cầu như C:\mydir. Tôi giả sử nó không thể tìm thấy đường dẫn bạn chỉ định, và do đó nó mặc định là đường dẫn được chỉ định trong tệp dự án của bạn.

  2. Nếu đường dẫn bạn thực sự chỉ định làm tham số chứa không gian, lệnh này có thể sẽ không thành công. Tôi tin rằng bạn cần phải quấn đường dẫn trong dấu ngoặc kép và nối thêm dấu gạch chéo ngược vào cuối chuỗi đường dẫn.

+0

Cảm ơn tất cả sự giúp đỡ của bạn Cody. Tài liệu tôi đã đọc (Tham chiếu dòng lệnh MSBuild cho VS 2010: http://msdn.microsoft.com/en-us/library/ms164311.aspx) sử dụng OutputDir. Tôi muốn nói rằng chúng tôi đang đọc các trang khác nhau. Bây giờ tôi cũng đã xây dựng thành công, sử dụng một tham chiếu thư mục tuyệt đối như c: \ mydir. – Mike

+0

@Mike: Những điều này xảy ra khi bạn ghi lại chính xác các tính năng tương tự ở rất nhiều địa điểm khác nhau. Tôi không thực sự chắc chắn nếu bạn đang nói rằng 'OutputPath' đã không làm việc cho bạn? 'OutDir' * sẽ * vẫn hoạt động. –

+2

GUYS. Không có tham số 'OutputDir'. Chỉ có 'OutputPath' và' OutDir'. Dừng thêm vào sự nhầm lẫn. –

1

tôi đã có thể cấu hình OutDir cho dòng lệnh MSBuild. Vui lòng xem câu trả lời của tôi tại liên kết bên dưới bằng lệnh. Xem câu trả lời của tôi https://stackoverflow.com/a/26477048/1006422