最近公司配备了新电脑,有各种的限制,在安装Visual Stdio的时候被各种封禁,连IT都救不了,最后尝试出了另一个方法,在这里做下心得分享。
一、需要安装的软件
只需要一个软件:Visual Studio 2022 Build Tools(微软官方免费 C++ 编译工具集),其中包含:
| 组件 | 用途 |
|---|---|
| MSBuild | 工程构建引擎,负责编译、链接 |
| MSVC v143 编译器(x86/x64) | 把 .cpp 编译成目标文件,链接生成 32 位 DLL |
| Windows 11 SDK (10.0.26100) | 提供 Windows 头文件和库(kernel32.lib 等) |
不需要安装完整版 Visual Studio IDE,也不需要 Python/CMake 等其他软件。
二、具体安装步骤(3 步)
第 1 步:下载引导安装器
打开浏览器访问微软官方短链接:https://aka.ms/vs/17/release/vs_BuildTools.exe
会自动下载 vs_BuildTools.exe(约 4.4 MB)。也可以用 PowerShell 命令下载:
Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vs_BuildTools.exe" -OutFile "$env:TEMP\vs_BuildTools.exe"
第 2 步:静默安装 C++ 工作负载
以管理员身份打开 PowerShell,执行(一整行):
Start-Process -FilePath "$env:TEMP\vs_BuildTools.exe" -ArgumentList '--quiet','--norestart','--nocache','--add','Microsoft.VisualStudio.Workload.VCTools','--includeRecommended' -Wait
参数说明:
--quiet:静默安装,不弹界面--norestart:装完不重启--add Microsoft.VisualStudio.Workload.VCTools:安装"C++ 生成工具"工作负载--includeRecommended:一并安装推荐组件(含 MSVC v143 + Windows 11 SDK)
第 3 步:等待并验证安装
-
耗时约 20~40 分钟(需下载约 2 GB),期间保持网络畅通
-
装完后验证以下三个路径是否存在:
Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe"
应返回 True
Test-Path "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.44.35207\bin\Hostx64\x86\cl.exe"
应返回 True
Get-ChildItem "C:\Program Files (x86)\Windows Kits\10\Include" | Select-Object Name
应能看到 10.0.26100.0
也可以改为图形界面安装:双击 vs_BuildTools.exe,勾选 "使用 C++ 的桌面开发" 工作负载后点安装,效果相同。
三、生成 DLL 的步骤
第 1 步:确认源码正确
检查 cpp文件中的代码是否正确。
第 2 步:执行 MSBuild 构建
在工程路径下打开PowerShell,进入项目目录并构建(两行):
cpp
& "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe" .\GenerateKeyExImpl.sln /p:Configuration=Debug /p:Platform=Win32 /p:PlatformToolset=v143 /p:WindowsTargetPlatformVersion=10.0.26100.0 /m /v:m
参数说明:
/p:Configuration=Debug /p:Platform=Win32:Debug 配置、32 位/p:PlatformToolset=v143:必须加,因为工程文件里写的是 v140(VS2015 工具集),本机没装,需用 v143 覆盖/p:WindowsTargetPlatformVersion=10.0.26100.0:必须加,工程文件里写的 SDK 版本较旧,需覆盖为本机安装的版本/v:m:只输出关键信息
正常结束时最后会显示:
GenerateKeyExImpl.vcxproj -> ...\Debug\SeednKey.dll
第 3 步:验证产物
Get-Item .\Debug\SeednKey.dll | Select-Object Name, Length, LastWriteTime
预期:约 957 KB 的 32 位 DLL,导出函数为 GenerateKeyEx(cdecl 约定),可直接给 CANoe/诊断工具加载使用。
常见问题
| 问题 | 处理 |
|---|---|
LNK1168 无法打开 SeednKey.dll 进行写入 |
DLL 被占用:先关闭加载它的工具(CANoe 等),若是杀毒扫描等瞬时占用,等几秒重试构建即可 |
| 报找不到 v140 工具集 | 构建命令必须带 /p:PlatformToolset=v143 |
| 报找不到 Windows SDK | 构建命令必须带 /p:WindowsTargetPlatformVersion=10.0.26100.0 |
| MSBuild.exe 路径不存在 | 说明 Build Tools 被卸载了,按第二部分重装 |