加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

PowerShell 配置VisualStudio 命令行环境

发布时间:2020-12-15 07:14:02 所属栏目:安全 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 ##################################################################################### VisualStudio Environment Process Script VisualStudio 2

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

<####################################################################################
# VisualStudio Environment Process Script VisualStudio 2013
# Note:  This Script Support Visual Studio 2013   
# Author: Mr.Lee
# Copyright ? By Huxizero.Studio
# ToolChain: X86
####################################################################################>
#Global

<####################################################################################
#  Default Visual Studio 2013 x86 native
#  VisualStudio 110
#  VisualStudio 120
#  X86 X64 ARM
####################################################################################>

<#==========================================================================########
#  Visual Studio 100,110,120 
#  x86 AMD64 ARM
#
# $>>2013.10.29 Add .Net Framework Support,Framework 4.0 or Later;
# 
######============================================================================#>
<##--------------------------------------------------------------------------------
# $VSKit= '8.1' or '8.0' or '7.0A'
# $SysNode='SOFTWAREWow6432Node' or 'SOFTWARE'
#
#----------------------------------------------------------------------------#######>

Function Get-RegistryValue($key,$value) { 
                  (Get-ItemProperty $key $value).$value 
}

Function Print-VisualStudioNotFound($VSVer,$VSPATH)
{
  Write-Host -ForegroundColor Red "Can not find $VSVer,Please seized car in this directory(${VSPATH}) VisualStudio version and installation"
  Start-Sleep 3
}
 
If($args.Count -ge 2)
{
 $VisualStudio=$args[0]
 $Platform=$args[1]
 #$args[2]
}
ELSE
{
 exit
}
$InvokeScript=[System.IO.Path]::GetDirectoryName($MyInvocation.MyCommand.Definition)
#Set-Location $InvokeScript

if( ([System.Environment]::OSVersion.Version.Major -gt 5) -and ( # Vista and ...
         new-object Security.Principal.WindowsPrincipal (
            [Security.Principal.WindowsIdentity]::GetCurrent()) # current user is admin
            ).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) )
 {
$EnvTitle="${env:UserName}@${env:UserDomain} [A] (X86)"
}
ELSE
{
$EnvTitle="${env:UserName}@${env:UserDomain} (X86) "
}
$Host.UI.RawUI.WindowTitle="$EnvTitle - $PWD"

IF(${env:ProgramFiles(x86)} -eq $null)
  {
   $SystemType=32
   $ProgramDir=${env:ProgramFiles}
  }
ELSE
  {
   $SystemType=64
   #SDK Install On ${ProgramDir}
   $ProgramDir=${env:ProgramFiles(x86)}
  }
#$VS_120 =
Write-Host "Your Select Visual Studio is: $VisualStudio,And Your Select Platform:$Platform,And Your Host System is: $SystemType"  
$reI=[System.String]::Compare($VisualStudio,"VS120",$True)
$reII=[System.String]::Compare($VisualStudio,"VS110",$True)
$reIII=[System.String]::Compare($VisualStudio,"VS100",$True)
IF($reI -eq 0)
  {
    #Write-host "VS120 LALALAL"
    Write-Host "Check Visual Studio 2013 Install !!!!!"
    $DefaultFramework=4.51
    IF($env:VS120COMNTOOLS -eq $null)
    {
      Print-VisualStudioNotFound 'VisualStudio 2013' "${env:VS120COMNTOOLS}"
      exit
    }
    $IDE="${env:VS120COMNTOOLS}..IDE"
    if($SystemType -eq 64)
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVS7' '12.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' '12.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv8.1' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools-x64' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkDir64'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkVer64'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudio12.0SetupF#' 'ProductDir'
    }
    else
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVS7' '12.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' '12.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv8.1' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkDir32'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkVer32'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudio12.0SetupF#' 'ProductDir'
    }
    $KitBin32="${SDKDIR}binx86"
    $kitBin64="${SDKDIR}binx64"
    $KitBinARM="${SDKDIR}binARM"
    $KitInc="${SDKDIR}Includeum;${SDKDIR}IncludeShared;${SDKDIR}IncludeWinRT"
    $KitLib32="${SDKDIR}Libwinv6.3umx86"
    $KitLib64="${SDKDIR}Libwinv6.3umx64"
    $KitLibARM="${SDKDIR}LIBwinv6.3umARM"
  }
ELSEIF($reII -eq 0)
  {
    $DefaultFramework=4.5
    Write-Host "Check Visual Studio 2012 Install !!!!!"
    IF($env:VS110COMNTOOLS -eq $null)
    {
      Print-VisualStudioNotFound 'VisualStudio 2012' "${env:VS110COMNTOOLS}"
      exit
    }
    $IDE="${env:VS110COMNTOOLS}..IDE"
    if($SystemType -eq 64)
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVS7' '11.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' '11.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv8.0' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools-x64' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkDir64'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkVer64'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudio11.0SetupF#' 'ProductDir'
    #$NetTools="${NetTools}bin"
    }
    else
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVS7' '11.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' '11.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv8.0' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkDir32'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkVer32'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudio11.0SetupF#' 'ProductDir'
    }
    $KitBin32="${SDKDIR}binx86"
    $kitBin64="${SDKDIR}binx64"
    $KitBinARM="${SDKDIR}binARM"
    $KitInc="${SDKDIR}Includeum;${SDKDIR}IncludeShared;${SDKDIR}IncludeWinRT"
    $KitLib32="${SDKDIR}Libwin8umx86"
    $KitLib64="${SDKDIR}Libwin8umx64"
    $KitLibARM="${SDKDIR}LIBwin8umARM"
  }
ELSEIF($reIII -eq 0)
  {
    Write-Host "Check Visual Studio 2010 Install !!!!!"
    IF($env:VS100COMNTOOLS -eq $null)
    {
      Print-VisualStudioNotFound 'VisualStudio 2010' "${env:VS100COMNTOOLS}"
      exit
    }
    $Perr=[System.String]::Compare($Platform,"ARM",$True)
    IF($Perr -eq 0)
    {
      Write-Host -ForegroundColor Red "Error! Visual Studio Not Support ARM Platform."
      Start-Sleep 5
      Exit
    }
    $DefaultFramework=4.0
    
    $IDE="${env:VS100COMNTOOLS}..IDE"
    if($SystemType -eq 64)
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVS7' '10.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' '10.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv7.0A' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv7.0AWinSDK-NetFx40Tools-x64' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkDir64'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkVer64'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudio10.0SetupF#' 'ProductDir'
    #$NetTools="${NetTools}bin"
    }
    else
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVS7' '10.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' '10.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv7.0A' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv7.0AWinSDK-NetFx40Tools' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkDir32'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkVer32'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudio10.0SetupF#' 'ProductDir'
    }
    $KitBin32="${SDKDIR}bin"
    $kitBin64="${SDKDIR}binx64"
    $KitInc="${SDKDIR}Include"
    $KitLib32="${SDKDIR}Lib"
    $KitLib64="${SDKDIR}Libx64"
  
  }
ELSE
  {
    #Write-host "VS120 LALALAL"
    Write-Host "Check Visual Studio 2013 Install !!!!!"
    $DefaultFramework=4.51
    
    $IDE="${env:VS120COMNTOOLS}..IDE"
    if($SystemType -eq 64)
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVS7' '12.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' '12.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv8.1' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools-x64' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkDir64'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudioSxSVC7' 'FrameworkVer64'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREWow6432NodeMicrosoftVisualStudio12.0SetupF#' 'ProductDir'
    }
    else
    {
    $VSInstall=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVS7' '12.0'
    $VCDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' '12.0'
    $SDKDIR=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv8.1' 'InstallationFolder'
    $NetTools=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftMicrosoft SDKsWindowsv8.0AWinSDK-NetFx40Tools' 'InstallationFolder'
    $FrameworkDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkDir32'
    $FrameworkVer=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudioSxSVC7' 'FrameworkVer32'
    $FSharpDir=Get-RegistryValue 'HKLM:SOFTWAREMicrosoftVisualStudio12.0SetupF#' 'ProductDir'
    }
    $KitBin32="${SDKDIR}binx86"
    $kitBin64="${SDKDIR}binx64"
    $KitBinARM="${SDKDIR}binARM"
    $KitInc="${SDKDIR}Includeum;${SDKDIR}IncludeShared;${SDKDIR}IncludeWinRT"
    $KitLib32="${SDKDIR}Libwinv6.3umx86"
    $KitLib64="${SDKDIR}Libwinv6.3umx64"
    $KitLibARM="${SDKDIR}LIBwinv6.3umARM"
  }
IF($SystemType -eq 64)
{
  $FrameworkDir="${FrameworkDir}"
  #$env:PATH="$FSharpDir;$env:PATH"
}

$env:Path="$FSharpDir;$NetTools;${FrameworkDir}${FrameworkVer};$env:Path"

$re1=[System.String]::Compare($Platform,"X64",$True)
$re2=[System.String]::Compare($Platform,"X86",$True)
$re3=[System.String]::Compare($Platform,$True)

IF($re1 -eq 0){
IF($SystemType -eq 32)
{
$Compiler="${VCDir}binx86_amd64"
$Library="${VCDir}libamd64"
$env:Path="$Compiler;$KitBin32;$IDE;${VCDIR}bin;$env:PATH"
$env:INCLUDE="$KitInc;${VCDir}Include;$env:INCLUDE"
$env:LIB="$KitLib64;${VCDir}Libamd64;$env:LIB"
}
ELSE{
$Compiler="${VCDir}binamd64"
$Library="${VCDir}libamd64"
$env:Path="$Compiler;$KitBin64;$IDE;$env:PATH"
$env:INCLUDE="$KitInc;${VCDir}Include;$env:INCLUDE"
$env:LIB="$KitLib64;${VCDir}Libamd64;$env:LIB"
}
#Test OK
}
ELSEIF($re2 -eq 0){
$Compiler="${VCDir}bin"
$Library="${VCDir}lib"
$env:Path="$Compiler;$KitBin32;$IDE;$env:PATH"
$env:INCLUDE="$KitInc;${VCDir}Include;$env:INCLUDE"
#VS120 OK
$env:LIB="$KitLib32;${VCDir}LIB;$env:LIB"
#echo $Compiler
}
ELSEIF($re3 -eq 0){
$Compiler="${VCDir}binx86_ARM"
$Library="${VCDir}libarm"
$env:Path="$Compiler;${VCDir}bin;$KitBinARM;$IDE;$env:PATH"
$env:INCLUDE="$KitInc;${VCDir}Include;$env:INCLUDE"
$env:LIB="$KitLibARM;${VCDir}LIBarm;$env:LIB"
}ELSE
{
$Compiler="${VCDir}bin"
$Library="${VCDir}lib"
$env:Path="$Compiler;$KitBin32;$IDE;$env:PATH"
$env:INCLUDE="$KitInc;${VCDir}Include;$env:INCLUDE"
#VS120 OK
$env:LIB="$KitLib32;${VCDir}LIB;$env:LIB"
}

#Base C/C++ Native Environment Support
#///////////////////////////////////////////////////////////////////////#

#Write-Host "${VCDir}..Common7IDE"
#Write-Host $Compiler $Library

#Write-Host $Global:WindowTitlePrefix.ToString()
#Find Visual Studio 2013

#//////////////////////////////////////////////////////////////////////#
#Extend C/C++ Environment


#.Net Framework Check
#Framework or Framework64

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读