เรียกใช้เครื่องมือบรรทัดคำสั่ง Visual Studio ใน Windows Powershell


10

ใน cmd.exe ฉันจะเรียกใช้

%VS80COMNTOOLS%\vsvars32.bat

เพื่อตั้งค่าสภาพแวดล้อมสำหรับการเรียกใช้เครื่องมือบรรทัดคำสั่งของ Visual Studio (เช่น cl, link, mt เป็นต้น) ฉันสงสัยว่าฉันจะตั้งค่าสภาพแวดล้อมในการใช้เครื่องมือเหล่านี้ได้อย่างไรใน Powershell แน่นอนว่าเป็นไปได้ที่จะเรียกใช้ไฟล์แบตช์

start-process $env:vs80comntools\vsvars32.bat

แต่จากนั้นสภาพแวดล้อมจะหายไปเมื่อกระบวนการสิ้นสุดลง ฉันได้ทำการทดลองกับ System.Diagnostics.StartProcessInfo แล้วเช่น

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

และจากนั้นรับสภาพแวดล้อม$procInfo.EnvironmentVariablesแต่ก็ไม่ได้ผล

มีวิธีอื่นในการตั้งค่าสภาพแวดล้อมใน Powershell หรือไม่?

คำตอบ:



2

PSCX Import-VisualStudioVarsเป็นสคริปต์ขนาดใหญ่ที่พยายามทำซ้ำสิ่งที่vsvars32.batทำ ปัญหาที่เกิดขึ้นคือการทำให้พวกเขาซิงค์ต้องใช้ความพยายามและสามารถเป็นแหล่งของข้อบกพร่อง

ฉันชอบที่จะพึ่งพา vsvars32.bat เพื่อทำสิ่งที่มันทำและนำเข้า env vars ใน PowerShell ฉันทำกับวิงวอน-CmdScript.ps1


ขอบคุณสำหรับการตอบกลับ. ฉันได้พิจารณาแล้วว่าการนำเข้า - VisualStudioVar mocks มากกว่าหรือน้อยกว่าการดำเนินการของ vsvars32.bat แทนการดำเนินการจริง อย่างไรก็ตามการเห็น vsvars32.bat ค่อนข้างเสถียรสำหรับ VS รุ่นที่เฉพาะเจาะจงฉันไม่คิดว่าจะมีปัญหาที่แท้จริงในการรักษาผลลัพธ์ของตัวเลือกทั้งสองให้ตรงกัน อย่างไรก็ตามฉันจะลองทำตามข้อเสนอของคุณ
Uwe Honekamp

0

ตัวเลือกอื่นจากแกลเลอรี PowerShell: posh-vs ทำให้เครื่องมือบรรทัดคำสั่ง Visual Studio มีอยู่ใน PowerShell รองรับ Visual Studio 2017 และ 2015

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.