当前位置 : 主页 > 手机开发 > 其它 >

在启动之前检查.NET依赖项

来源:互联网 收集:自由互联 发布时间:2021-06-22
我有几个应用程序,我工作,并喜欢分发给需要Microsoft提供.dll和/或框架的朋友.具体来说,XNA.我已经厌倦了从他们那里收回电子邮件说“它崩溃了”,而实际上发生的一切都是他们没有安装
我有几个应用程序,我工作,并喜欢分发给需要Microsoft提供.dll和/或框架的朋友.具体来说,XNA.我已经厌倦了从他们那里收回电子邮件说“它崩溃了”,而实际上发生的一切都是他们没有安装XNA(或.NET 3.5,或其他).但是,Main无法捕获这些错误,因为.exe在main执行之前加载它们.

所以,我的问题是,我将如何创建一个可以检查.NET 3.5,XNA等内容的启动器并显示一个很好的错误消息(“此应用程序需要XNA 3.0,在此处下载!”)而不是看起来好像崩溃了吗?

更新:我应该指定我想在不使用安装程序的情况下执行此操作.我有一个锅炉板WIX安装程序,允许我检查依赖性,但有时我只想上传一个拉链供人们玩.

要在没有安装程序的情况下执行此操作,您可能需要创建一个“启动程序”脚本,该脚本除了在预先执行任何依赖性检查之后调用“真实”入口点之外,还可以执行此操作.

由于缺少依赖关系似乎是一个非常常见的痛苦来源,因此建议将启动程序编写成一种不会依赖于尚未在Windows上安装的依赖项的东西,例如AutoIt script打包作为可执行文件.

Const $AppTitle = 'Whizzy Game'
Const $MB_ICONERROR = 16

If RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5', 'Install') <> 1 Then
    MsgBox($MB_ICONERROR, $AppTitle, 'The .NET Framework runtime v3.5 is required to run.')
    Exit 1
EndIf

If RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\XNA\Framework\v3.1', 'Installed') <> 1 Then
    MsgBox($MB_ICONERROR, $AppTitle, 'The XNA Framework runtime v3.1 is required to run.')
    Exit 1
EndIf

Exit RunWait('WhizzySoftware.WhizzyGame.EntryPoint.exe')
网友评论