当尝试在未安装正确 .NET Framework 的 Windows XP 安装上启动 C#/.NET 应用程序时,应用程序会崩溃并显示以下消息:
---------------------------
ThisApp.exe - Application Error
---------------------------
The application failed to initialize properly (0xc0000135).
Click on OK to terminate the application.
---------------------------
OK
---------------------------
老实说,这对 Joe 用户来说毫无意义,尤其是因为错误代码可能指的是 .NET Framework 不存在以外的东西。
是否有可能因更有意义的消息而崩溃? (类似于“此应用程序需要 .NET Framework 3.0 才能运行。请在 http://www.example.com/ 下载它”)
编辑:
好吧,我做了一些进一步的测试,发现了一些非常有趣的东西。
在干净的 Windows XP SP3 安装(未安装 .NET Framework)上,无论 .NET Framework 是什么版本,应用程序总是会崩溃并显示上述消息定位,但 .NET 4.5 和 .NET 4.5.1 除外,它们显示更糟糕的消息:
---------------------------
path\to\ThisApp.exe
---------------------------
path\to\ThisApp.exe is not a valid Win32 application.
---------------------------
OK
---------------------------
现在 Windows Vista 的有趣之处在于,这些实际上在启动应用程序时考虑了 ThisApp.exe.config 文件。
在干净的 Windows Vista SP2 安装上(默认安装 .NET 3.5),针对 .NET 4.0 及更高版本使用 .exe.config 导致出现以下消息:
---------------------------
ThisApp.exe - .NET Framework Initialization Error
---------------------------
To run this application, you first must install one of the following versions of the .NET Framework:
v4.0
Contact your application publisher for instructions about obtaining the appropriate version of the .NET Framework.
---------------------------
OK
---------------------------
现在没有.exe.config,而是显示:
---------------------------
ThisApp.exe - .NET Framework Initialization Error
---------------------------
To run this application, you first must install one of the following versions of the .NET Framework:
v4.0.30319
Contact your application publisher for instructions about obtaining the appropriate version of the .NET Framework.
---------------------------
OK
---------------------------
一个非常小的变化,我知道,但我要解决这个问题。有趣的是,即使针对 .NET 4.5 和 4.5.1,版本号(v4.0 或 v4.0.30319)也保持不变。
现在在干净的 Windows 7 SP1 安装上(默认安装了 .NET 4.0 Client Profile),针对 .NET 4.0(完整版)及更高版本 .exe.config 导致 the message that was mentioned here出现:
---------------------------
ThisApp.exe - .NET Framework Initialization Error
---------------------------
To run this application, you first must install one of the following versions of the .NET Framework:
.NETFramework,Version=v4.0
Would you like to download and install .NETFramework,Version=v4.0 now?
---------------------------
Yes No
---------------------------
现在这条消息更像它了。当分别针对 .NET 4.5 和 4.5.1 时,版本也更改为 v4.5 和 v4.5.1。
但是,如果没有 .exe.config,应用程序可以正常启动,即使是针对 .NET 4.0(完整版)和更高版本(甚至 4.5)也是如此。我想如果我实际使用 .NET 4.0 完整版或 4.5 及更高版本的任何功能,该应用程序最终会崩溃,但我仍然认为它非常有趣。假设地,您将能够检查应用本身内的 .NET 版本是否正确。
我无法在 Windows 8/8.1 上进行测试,但我想它与 Windows 7 相同。
无论哪种方式,这都不是一个已解决的问题,至少在仍然拥有大量安装基础的 Windows XP 上是这样。
此外,请停止告诉我使用安装程序。我知道。这不是这个问题的目的。
最佳答案
Which is honestly pretty meaningless to a Joe User,
只有 Joe 用户应该启动已安装的程序。安装程序有责任处理先决条件。
Is it somehow possible to crash with a more meaningful message?
不,因为你不会崩溃。不在 .NET 中。创建 .NET 时,微软使文件向后兼容。它是可执行文件中的 native 初始化代码,而不是 .NET 代码中的代码。没有运行时,.NET 代码无法运行。
有趣的是,这是一个已解决的问题。您使用的是完全过时的 .NET 版本,因为这个问题已在最新版本(.NET 4.0 以上)中得到修复,并带有一个更有意义的对话框。
有引用。取决于直接导致下载/安装对话框的 Windows 版本。
.NET 3.0 相当古老。
关于c# - 更好地处理丢失的 .NET Framework (0xc0000135) 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23062809/
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
当我在Rails控制台中按向上或向左箭头时,出现此错误:irb(main):001:0>/Users/me/.rvm/gems/ruby-2.0.0-p247/gems/rb-readline-0.4.2/lib/rbreadline.rb:4269:in`blockin_rl_dispatch_subseq':invalidbytesequenceinUTF-8(ArgumentError)我使用rvm来管理我的ruby安装。我正在使用=>ruby-2.0.0-p247[x86_64]我使用bundle来管理我的gem,并且我有rb-readline(0.4.2)(人们推荐的最少
“输出”是一个序列化的OpenStruct。定义标题try(:output).try(:data).try(:title)结束什么会更好?:) 最佳答案 或者只是这样:deftitleoutput.data.titlerescuenilend 关于ruby-on-rails-更好的替代方法try(:output).try(:data).try(:name)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
我收到格式为的回复#我需要将其转换为哈希值(针对活跃商家)。目前我正在遍历变量并执行此操作:response.instance_variables.eachdo|r|my_hash.merge!(r.to_s.delete("@").intern=>response.instance_eval(r.to_s.delete("@")))end这有效,它将生成{:first="charlie",:last=>"kelly"},但它似乎有点hacky和不稳定。有更好的方法吗?编辑:我刚刚意识到我可以使用instance_variable_get作为该等式的第二部分,但这仍然是主要问题。
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
使用rails4,ruby2。我在rails配置中为我的cookiesession设置了30分钟的超时时间。问题是,如果我转到表单,让session超时,然后提交表单,我会收到此ActionController::InvalidAuthenticityToken错误。如何在Rails中优雅地处理这个错误?比如说,重定向到登录屏幕? 最佳答案 在您的ApplicationController:rescue_fromActionController::InvalidAuthenticityTokendoredirect_tosome_p
我有一个名为Post的类,我需要能够适应以下场景:如果用户选择了一个类别,则只显示该类别的帖子如果用户选择了一种类型,则只显示该类型的帖子如果用户选择了一个类别和类型,则只显示该类别中该类型的帖子如果用户没有选择任何内容,则显示所有帖子我想知道我的Controller是否不可避免地会因大量条件语句而显得粗糙...这是我解决此问题的错误方法-有谁知道我如何才能做到这一点?classPostsController 最佳答案 您最好遵循“胖模型,瘦Controller”的惯例,这意味着您应该将这种逻辑放在模型本身中。Post类应该能够报告
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?