如何解决如何让应用程序在 WinPE 中运行?
试图让一个简单的 Windows 窗体 vb.net 应用程序在 WInPE 中运行。没有编译只是读取一个文本文件,提示用户输入一些内容,创建一个文本文件(批处理文件)然后运行批处理文件。
我已将 .net 包添加到 Wim
set PF=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\x86\WinPE_OCs\
dism /Add-Package /Image:"f:\WimMount\WIM" /PackagePath:"%PF%WinPE-WMI.cab"
dism /Add-Package /Image:"f:\WimMount\WIM" /PackagePath:"%PF%en-us\WinPE-WMI_en-us.cab"
dism /Add-Package /Image:"f:\WimMount\WIM" /PackagePath:"%PF%WinPE-NetFx.cab"
dism /Add-Package /Image:"f:\WimMount\WIM" /PackagePath:"%PF%en-us\WinPE-NetFx_en-us.cab"
如果我使用 64 位 WinPE,则在调用 .exe 时没有任何反应。如果我使用 32 位 WinPE,则返回以下内容:xxxx 与您正在运行的 Windows 版本不兼容
我尝试过编译为任何 CPU、具有 Prefer32-Bit Checked、x86 和 x64 的任何 CPU。
我什至尝试过一个不起作用的 VB6 应用程序。我知道我多年前用 VB6 做过这件事,并且读到所有需要的是将包添加到 PE 环境中,但似乎无法让它工作。
解决方法
你的小人看起来和我的不一样。我在我的项目中运行一个 c# windows 窗体应用程序,所以我知道它至少是可能的。确保您的应用程序中不使用最低 .net 支持中不支持的内容。 您不能使用的一个很大的、令人惊讶的部分是标准文件对话框。这可能是您在 32 位实验中接近但并非完全成功的源泉。
这是我输入的内容。您可以看到添加的形状略有不同:
cd /d "%adk%\Windows Preinstallation Environment\amd64\WinPE_OCs"
dism /image:C:\Mount /add-package /packagepath:"WinPE-Scripting.cab" /packagepath:"en-us\WinPE-Scripting_en-us.cab"
dism /image:C:\Mount /add-package /packagepath:"WinPE-WMI.cab" /packagepath:"en-us\WinPE-WMI_en-us.cab"
dism /image:C:\Mount /add-package /packagepath:"WinPE-NetFx.cab" /packagepath:"en-us\WinPE-NetFx_en-us.cab"
dism /image:C:\Mount /add-package /packagepath:"WinPE-SecureStartup.cab" /packagepath:"en-us\WinPE-SecureStartup_en-us.cab"
dism /image:C:\Mount /add-package /packagepath:"WinPE-EnhancedStorage.cab" /packagepath:"en-us\WinPE-EnhancedStorage_en-us.cab"
dism /image:C:\Mount /add-package /packagepath:"WinPE-Dot3Svc.cab" /packagepath:"en-us\WinPE-Dot3Svc_en-us.cab"
dism /unmount-wim /commit /mountdir:c:\mount
你可以从第一行中推断出,这是一个 x64 winpe...我们只是编译到任何 CPU。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。