加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 20:45:44 所属栏目:百科 来源:网络整理
导读:我有几个应用程序,我工作,并喜欢分发给需要Microsoft提供.dll和/或框架的朋友.具体来说,XNA.我已经厌倦了从他们那里收回电子邮件说“它崩溃了”,而实际上发生的一切都是他们没有安装XNA(或.NET 3.5,或其他).但是,Main无法捕获这些错误,因为.exe在main执行之
我有几个应用程序,我工作,并喜欢分发给需要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_MACHINESOFTWAREMicrosoftNET Framework SetupNDPv3.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_MACHINESOFTWAREMicrosoftXNAFrameworkv3.1','Installed') <> 1 Then
    MsgBox($MB_ICONERROR,'The XNA Framework runtime v3.1 is required to run.')
    Exit 1
EndIf

Exit RunWait('WhizzySoftware.WhizzyGame.EntryPoint.exe')

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读