![]() |
1
4
这不是.NET错误,而是MS C运行时(CRT、MSCRT)错误。
您的第三方DLL可能正在使用某些mscrt dll(有很多版本)。在本机应用程序的进程启动时,CRT被初始化(它包含程序入口点,然后调用
如果.NET 2运行时 1 默认情况下,使用与本机代码相同的mscrt,然后它将被正确初始化。.NET 4可能使用较新的版本(新的mscrt版本往往与vs的新版本一起提供,就像.NET一样),那么较旧的mscrt仅作为依赖项加载,而不用于应用程序启动。
大多数情况下,msct都能正确地处理这个问题,但是如果第三方dll做了一些“聪明”的事情,它可能会绕过一些初始化,而这恰好起作用的是.NET使用的mscrt的相同版本。这种错误用法的一个例子是直接调用
要找到根本原因,您需要对第三部分DLL和包装有足够的了解,更可能需要向第三方提供重新创建,以便他们修复。 一 记住,v3.5只是2.0cli之上的额外程序集。 |
![]() |
2
1
它是只在调试时发生,还是也在运行中发生? 想到两件事: 1).NET的默认应用程序类型是针对.NET客户端框架的,这是最烦人的,我必须随时更改它。如果你把它作为一个表面上与之毫无关系的客户,你可能会犯各种各样的错误。试着改变它。 2)您需要vs 2010还是.NET 4.0?如果只有vs 2010,那么您可以将目标框架设置为3.5,并尝试查看问题是vs 2010还是.NET 4.0。 从Internet上的错误来看,这似乎是一个时间问题,并且C运行时没有被加载—这在.NET 4.0中看起来是一种改变的行为。我不知道怎么修。 |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |