Find installerede Visual C++-værktøjer til Visual Studio 2017

Find installerede Visual C++-værktøjer til Visual Studio 2017

Indhold forældet

For opdateret dokumentation se Værktøjer til at finde og administrere Visual Studio-forekomster. Der har været en række spørgsmål fra kunder om, hvordan man kan finde værktøjerne i verden af ​​denne nye installationsmodel. Følgende blogindlæg deler en række tilgængelige muligheder for at lokalisere Visual Studio 2017-forekomster og giver forskellige eksempler, der illustrerer processen i aktion.

Sådan finder du installerede Visual Studio 2017-instanser og C++-værktøjer

Der er flere måder, du kan gå til at finde de installerede VS-forekomster og bestemme de installerede værktøjer for hver forekomst.

1.  vswhere.exe:   En enkeltstående indbygget eksekverbar fil, der kan omdistribueres og kan bruges til at finde installerede Visual Studio-produktforekomster til brug i build- og implementeringsscripts. Værktøjet understøtter hidtil udsendelse af forskellige formater, herunder almindelig tekst, JSON og XML. For eksempel vil følgende batchscript til vswhere finde rodstien til den senest installerede version, der også indeholder C++ Desktop-arbejdsbelastningen:

for /f "usebackq tokens=1* delims=: " %%i in (`vswhere.exe -latest -requires Microsoft.VisualStudio.Workload.NativeDesktop`) do (

if /i "%%i"=="installationPath" set dir=%%j

)

%dir% indeholder nu rodinstallationsstien, hvis den er tilgængelig.

2.  PowerShell API:Dette er den enkleste API til at finde VS-installationsinstanser og -komponenter, men kræver selvfølgelig PowerShell v3 og nyere. Hvis du kører på PowerShell v3 eller v4, skal du også installere PowerShellGet. Dette er allerede inkluderet i PowerShell v5, der følger med Windows 10.  Følgende kommando viser alle installerede VS2017-forekomster, der også installerede v141-værktøjssættet til x86 og x64:

Installer først VSSetup-modulet:

Install-Module VSSetup -Scope CurrentUser

Når det er fuldført, vil følgende script vise alle installerede forekomster med Visual C++-kompilere installeret:

Get-VSSetupInstance | Select-VSSetupInstance -Latest -Require Microsoft.VisualStudio.Component.VC.Tools.x86.x64

3.  Visual Studio Setup API:Denne COM API gør det muligt at forespørge installerede VS-instanser og deres komponenter fra en række forskellige programmeringssprog (C++, C#, VB). Koden er ikke så simpel som PowerShell-scriptet, men vi har flere eksempler på GitHub på, hvordan man bruger API'en:

Prøver på GitHub (prøve uden NuGet-afhængighed)

Eksempel:At finde forekomster med et installeret Visual C++-værktøjssæt med API'en

For et mere specifikt eksempel på brug af denne COM API fra C++ til at liste installerede forekomster, der inkluderer Visual C++-værktøjer, kan du se dette eksempel på GitHub.

Det er inde i PrintPackageReference funktion, at mit eksempel tjekker navnet på hver installeret komponent i instansen for at afgøre, om Visual C++-værktøjssættet er installeret (dvs. hvis "Microsoft.VisualStudio.Component.VC.Tools.x86.x64" er installeret).

//check if instance has VC tools
if (bstrId == L"Microsoft.VisualStudio.Component.VC.Tools.x86.x64") {
vcToolsFound = true;
std::wcout << L"Instance " << OLE2T(vcInstance) << " contains the VC++ 2017 compiler tools (x86 and x64 targets).\n";
}

Hvis du bygger løsningen, starter en simpel kommandoprompt, der kan vise installerede Visual Studio-forekomster, deres komponenter og hvilke forekomster, der har C++-værktøjer installeret. For at finde VC++ byggeværktøjerne på maskinen med værktøjet skal du vælge mulighed #3 i, og det vil indikere, hvilken instans der har VC++ værktøjer installeret:

Bemærk:  Dette eksempel er ikke et officielt værktøj og er kun beregnet til at instruere, hvordan man udnytter COM API til at finde de installerede Visual C++-værktøjer.

 C++ installationsarbejdsbelastninger og komponenter

Nedenfor er en tabel over de underliggende navne, der bruges til at beskrive hver C++-arbejdsbelastning, såvel som de underliggende komponentnavne, der bruges af installationsprogrammet til de muligheder, der er angivet i hver arbejdsbelastning. Visual C++ 2017 v141 compiler værktøjssæt-komponenten (x86- og x64-målretning), kendt som Microsoft.VisualStudio.Component.VC.Tools.x86.x64 , er inkluderet i desktop-arbejdsbelastningen som en anbefalet (forudvalgt) komponent og er en påkrævet (altid installeret) komponent i C++-spillet og byggeværktøjs-arbejdsbelastninger.

Arbejdsbelastning Installationsnavn
Desktopudvikling med C++ Microsoft.VisualStudio.Workload.NativeDesktop
Universal Windows-platformudvikling Microsoft.VisualStudio.Workload.Universal
Linux-udvikling med C++ Microsoft.VisualStudio.Workload.NativeCrossPlat
Spiludvikling med C++ Microsoft.VisualStudio.Workload.NativeGame
Mobiludvikling med C++ Microsoft.VisualStudio.Workload.NativeMobile

Byg værktøjsarbejdsbelastninger

MSBuild-værktøjer Microsoft.VisualStudio.Workload.MSBuildTools
Visuelle C++ byggeværktøjer Microsoft.VisualStudio.Workload.VCTools

Desktopudvikling med C++

Venligt navn Komponentnavn
VC++ 2017 v141-værktøjssæt (x86, x64) Microsoft.VisualStudio.Component.VC.Tools.x86.x64
C++ profileringsværktøjer Microsoft.VisualStudio.Component.VC.DiagnosticTools
Windows 10 SDK (10.0.14393.0) Microsoft.VisualStudio.Component.Windows10SDK.14393
Visuelle C++ værktøjer til CMake Microsoft.VisualStudio.Component.VC.CMake.Project
Visuel C++ ATL-understøttelse Microsoft.VisualStudio.Component.VC.ATL
Windows 8.1 SDK og UCRT SDK Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81
Windows XP-understøttelse af C++ Microsoft.VisualStudio.ComponentGroup.NativeDesktop.WinXP
MFC- og ATL-understøttelse (x86 og x64) Microsoft.VisualStudio.Component.VC.ATLMFC
C++/CLI-understøttelse Microsoft.VisualStudio.Component.VC.CLI.Support
Clang/C2 (eksperimentel) Microsoft.VisualStudio.Component.VC.ClangC2
Standard biblioteksmoduler Microsoft.VisualStudio.Component.VC.Modules.x86.x64
IncrediBuild Component.Incredibuild
Windows 10 SDK (10.0.10586.0) Microsoft.VisualStudio.Component.Windows10SDK.10586
Windows 10 SDK (10.0.10240.0) Microsoft.VisualStudio.Component.Windows10SDK.10240
Visual C++ 2015.3 v140 værktøjssæt (x86, x64) Microsoft.VisualStudio.Component.VC.140

Universal Windows-platformudvikling

*C++ Universal Windows Platform-udviklingsværktøjer skal være installeret til C++ UWP-udvikling, men er ikke installeret som standard.

Venligt navn Komponentnavn
IntelliTrace Microsoft.VisualStudio.Component.IntelliTrace.FrontEnd
Grafikfejlfinder og GPU-profiler til DirectX Microsoft.VisualStudio.Component.Graphics.Tools
*C++ Universal Windows Platform-udviklingsværktøjer *Microsoft.VisualStudio.ComponentGroup.UWP.VC
Windows 10 SDK (10.0.10240.0) Microsoft.VisualStudio.Component.Windows10SDK.10240
Windows 10 SDK (10.0.10586.0) Microsoft.VisualStudio.Component.Windows10SDK.10586
Arkitektur- og analyseværktøjer Microsoft.VisualStudio.ComponentGroup.ArchitectureTools.Managed

Spiludvikling med C++

Venligt navn Komponentnavn
C++ profileringsværktøjer Microsoft.VisualStudio.Component.VC.DiagnosticTools
Windows 10 SDK (10.0.14393.0) Microsoft.VisualStudio.Component.Windows10SDK.14393
Windows 10 SDK (10.0.10586.0) Microsoft.VisualStudio.Component.Windows10SDK.10586
Windows 10 SDK (10.0.10240.0) Microsoft.VisualStudio.Component.Windows10SDK.10240
Windows 8.1 SDK og UCRT SDK Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81
IncrediBuild Component.Incredibuild

Mobiludvikling med C++

Venligt navn Komponentnavn
Android NDK (RI 3B) Komponent.Android.NDK.R13B
Apache Ant (1.9.3) Komponent.Ant
Android SDK-opsætning (API-niveau 19 og 21) Komponent.Android.SDK19
Android SDK-opsætning (API-niveau 22) Komponent.Android.SDK22
Android SDK-opsætning (API-niveau 23) Komponent.Android.SDK23
Java SE-udviklingssæt (8.0920.14) Komponent.JavaJDK
C++ Android-udviklingsværktøjer Component.MDD.Android
Google Android Emulator (API niveau 23) Komponent.Android.Emulator
Intel Hardware Accelerated Execution Component.HAXM
Android NDK (RI 3B) (32bit) Komponent.Android.NDK.R13B_3264
Android NDK (R12B) Komponent.Android.NDK.R12B
Android NDK (R12B) (32bit) Komponent.Android.NDK.R12B_3264
Android NDK (R11C) Komponent.Android.NDK.R11C
Android NDK (R11C) (32bit) Komponent.Android.NDK.R11C_3264
C++ iOS-udviklingsværktøjer Komponent.MDD.IOS
IncrediBuild Component.Incredibuild

Visuelle C++ byggeværktøjer

*Visual C++ Build-værktøjerne altid installerer VS2017 v141-værktøjssættet.

Venligt navn Komponentnavn
*VC++ 2017 v141 værktøjssæt (x86, x64)  Microsoft.VisualStudio.Component.VC.Tools.x86.x64
Windows 10 SDK (10.0.14393.0) Microsoft.VisualStudio.Component.Windows10SDK.14393
Visuelle C++ værktøjer til CMake Microsoft.VisualStudio.Component.VC.CMake.Project
Windows 8.1 SDK og UCRT SDK Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Win81
Visuel C++ ATL-understøttelse Microsoft.VisualStudio.Component.VC.ATL
MFC- og ATL-understøttelse (x86 og x64) Microsoft.VisualStudio.Component.VC.ATLMFC
C++/CLI-understøttelse Microsoft.VisualStudio.Component.VC.CLI.Support
Clang/C2 (eksperimentel) Microsoft.VisualStudio.Component.VC.ClangC2
Standard biblioteksmoduler Microsoft.VisualStudio.Component.VC.Modules.x86.x64
Windows 10 SDK (10.0.10586.0) Microsoft.VisualStudio.Component.Windows10SDK.10586
Windows 10 SDK (10.0.10240.0) Microsoft.VisualStudio.Component.Windows10SDK.10240

Opsætning af dit kommandolinjemiljø

Udviklerkommandoprompten i Visual Studio 2017 kan bruges til at indstille stien til VC++-værktøjssættet i VCToolsInstallDir miljøvariabel. Nu hvor vi har fundet stien til hver af de installerede VS2017-instanser, der har VC++ compilerværktøjer installeret, vil vi henvise til denne mappe som . Dette script er på følgende placering:

\Common7\Tools\vsdevcmd.bat [-arch=] [-host_arch=]

er den arkitektur, som den producerede binære vil køre på (x86 [standard], x64, arm).

er den arkitektur, som compileren/linkeren blev bygget til (dvs. vil du have, at selve cl.exe/link.exe skal kunne gøre brug af 32-bit eller 64-bit adresserum) (x86 [standard], x64 ).

Her er et eksempel, der vil konfigurere kommandolinjebyggemiljøet til at bruge host-x64-kompileren målrettet mod x64, følgende kommando ville blive brugt:

\Common7\Tools\vsdevcmd.bat -arch=x64 -host_arch=x64

Vi har nu konfigureret vores kommandolinjebyggemiljø, så det ved, hvor de korrekte VC++-værktøjer er baseret på vores præferencer (vært/mål).

Identifikation af versionen af ​​VC++ compilerværktøjer

I en verden, hvor flere versioner af VC++-værktøjer kunne installeres i en enkelt VS-instans, har vi introduceret konceptet som angiver standardversionen af ​​VC++-værktøjer for den VS-installationsinstans. Hvis du planlægger at samle stien til VC++-værktøjssættet manuelt, skal vi kende standardversionen af ​​de installerede værktøjer for at få den fulde sti.

findes i en af ​​to filer, der kan findes, når du har en .

\VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.[txt|rekvisitter]

Du kan tjekke batch-scriptet, der findes \Common7\Tools\vsdevcmd\ext\vcvars.bat som et eksempel på, hvordan VS Developer Command Prompt gør dette.

Når en -værdi er identificeret, kan den fulde VC++-værktøjssti konstrueres manuelt som følger:

\VC\Tools\MSVC\\bin\Host\

For vores installerede værktøjer til host-x64 og target-x64 ser stien sådan ud:

\VC\ToolsMSVC\14.10.24930\bin\HostX64\x64

Afsluttende bemærkninger

Da vi har fjernet VS150COMNTOOLS-registreringsnøglen for at understøtte den nye verden, hvor flere VS-forekomster af det samme produkt kan installeres side om side på den samme maskine, ved vi, at mange byggesystemer og værktøjer har været afhængige af dette tidligere og de nye muligheder er ikke en identisk erstatning. Vi arbejder aktivt med biblioteksudviklere og andre med builds, der afhænger af VC++ compiler-værktøjerne, og vi er åbne for yderligere feedback for at hjælpe med at forfine og forbedre løsningerne nævnt ovenfor. Del venligst enhver feedback, du har, i kommentarerne, eller send gerne mere detaljerede forslag til [email protected].