![在 Windows PE 上运行 VB.NET](https://linux22.com/image/1513099/%E5%9C%A8%20Windows%20PE%20%E4%B8%8A%E8%BF%90%E8%A1%8C%20VB.NET.png)
我用 Visual Basic 制作了一个应用程序。我想在 Windows PE 中运行它 - 您可以从 Microsoft 获得的普通 PE,而不是任何发行版,例如 BartPE。WindowsPE 默认不支持 .NET,但我认为必须有一种方法可以安装所有库。我使用的是 32 位版本的 Windows PE 4.0(基于 Windows 8.0),但我也可以使用最新的 Windows PE 10.0.14393.0。我应该吗?当务之急是让 VB.NET 应用程序运行起来。谢谢大家!
答案1
这适用于任何现代版本的 Windows PE(因此 Windows 8 版本很好,Windows 10 版本也很好)。我个人使用过Windows 8.1 ADK成功。在安装程序的功能选择阶段,请确保您已部署工具当然还有 WinPE。
然后,您可以从“部署和映像工具环境”以管理员身份运行此批处理脚本的适当修改版本:
@echo off
set _=%CD%
set PF=C:\Program Files
if exist "C:\Program Files (x86)\" set PF=C:\Program Files (x86)
echo Preparing PE workspace...
call copype.cmd x86 scratch\ > nul
cd %_%
echo Mounting image...
dism /Mount-Wim /WimFile:scratch\media\sources\boot.wim /index:1 /MountDir:scratch\mount > nul
echo Injecting WMI packages...
dism /image:scratch\mount /Add-Package /PackagePath:"%PF%\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-WMI.cab" > nul
dism /image:scratch\mount /Add-Package /PackagePath:"%PF%\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\en-us\WinPE-WMI_en-us.cab" > nul
echo Injecting .NET packages...
dism /image:scratch\mount /Add-Package /PackagePath:"%PF%\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\WinPE-NetFX.cab" > nul
dism /image:scratch\mount /Add-Package /PackagePath:"%PF%\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\en-us\WinPE-NetFx_en-us.cab" > nul
echo Adding files...
REM: Add commands to copy in the appropriate files here
REM: Or insert a "pause" so you can manually do it in Explorer
echo Unmounting image...
dism /Unmount-Wim /MountDir:scratch\mount /Commit > nul
echo Finishing up...
move scratch\media\sources\boot.wim boot.wim > nul
rmdir /s /q scratch > nul
这些%PF%
东西在那里,所以它可以自动检测 Windows Kits 文件夹的位置,这取决于技术人员计算机的位数。如果您使用不同版本的 ADK,请将所有实例更改为8.1
您的工具包的文件夹名称。重要的部分是它添加 WMI 和 .NET 包的位置。(.NET 依赖于 WMI。)boot.wim
生成的最终文件将能够运行与 WinPE 环境位数相同的 .NET 应用程序。