Chạy các công cụ dòng lệnh Visual Studio trong Windows Powershell


10

Trong cmd.exe, tôi chỉ cần chạy

%VS80COMNTOOLS%\vsvars32.bat

để thiết lập môi trường để chạy các công cụ dòng lệnh Visual Studio (ví dụ: cl, link, mt, v.v.). Tôi tự hỏi làm thế nào tôi có thể thiết lập môi trường để chạy các công cụ này trong Powershell. Chắc chắn, có thể chạy các tệp bó bằng cách sử dụng

start-process $env:vs80comntools\vsvars32.bat

nhưng sau đó môi trường sẽ biến mất khi quá trình chấm dứt. Tôi đã thực hiện một số thử nghiệm với System.Diagnostics.StartProcessInfo, tức là

$proc = start-process $env:vs80comntools\vsvars32.bat -passthru
$procInfo = proc.StartInfo

và sau đó lấy môi trường từ $procInfo.EnvironmentVariablesnhưng điều này cũng không hoạt động.

Có cách nào khác để thiết lập môi trường trong Powershell không?

Câu trả lời:



2

PSCX Import-VisualStudioVarslà một tập lệnh lớn cố gắng sao chép những gì vsvars32.bat. Vấn đề ở đây là việc giữ chúng đồng bộ đòi hỏi nỗ lực và có thể là nguồn gây ra lỗi.

Tôi thích dựa vào vsvars32.bat để làm những gì nó làm và nhập env. bình. vào PowerShell. Tôi làm điều đó với Invoke-CmdScript.ps1 .


Cảm ơn vi đa trả lơi. Tôi đã xem xét rằng Nhập-VisualStudioVar ít nhiều giả định việc thực thi vsvars32.bat thay vì thực sự thực thi nó. Tuy nhiên, khi thấy vsvars32.bat khá ổn định cho một phiên bản VS cụ thể, tôi thực sự không nghĩ rằng có một vấn đề thực sự là giữ cho kết quả của cả hai tùy chọn được đồng bộ hóa. Tuy nhiên, tôi sẽ thử đề xuất của bạn.
Uwe Honekamp

0

Một tùy chọn khác từ thư viện PowerShell: posh-vs Làm cho các công cụ dòng lệnh Visual Studio có sẵn trong PowerShell. Hỗ trợ Visual Studio 2017 và 2015.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.