诊断27解锁dll文件制作(Visual Stdio无法安装版)

最近公司配备了新电脑,有各种的限制,在安装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 被卸载了,按第二部分重装
相关推荐
布吉岛的石头9 分钟前
Java 程序员第 50 阶段14:灾难性遗忘与回放
人工智能·深度学习·transformer
后端小肥肠23 分钟前
漫画工坊上线用户破百:公众号漫画从需求到变现全复盘
人工智能·aigc·agent
赛博山人1 小时前
字节跳动下线扣子企业版,团队已并入豆包
人工智能
isboyjc1 小时前
Lomo Agent:面向创作型、持续协作 Agent 的架构设计与工程实践
人工智能·架构·agent
小蒋观天下1 小时前
码率、I帧间隔、智能编码冲突:H.265+导致AI取流解码异常
人工智能
roman_日积跬步-终至千里2 小时前
AI 能让一个人成为团队吗?从数据中台到 OPC,重新理解软件工程能力
大数据·人工智能·软件工程
在所不辞兄2 小时前
为什么神经网络在训练集损失已接近零后继续训练,测试性能仍可能继续提升,而不是单纯地越来越过拟合?
人工智能·深度学习·神经网络·机器学习·智能仿真
AI砖家2 小时前
ChatGPT Images 2.6 正式支持 GIF 生成:一张图片也能动起来,AI 动图创作时代来了!
人工智能·chatgpt
希和20273 小时前
免费AI视频生成工具汇总(国内优先,适合做漫剧、短视频,Obsidian笔记版)
人工智能·笔记·音视频