日期:2014-05-20  浏览次数:20870 次

疑难杂症
用1.1做的软件,在很多客户那边用。大部分正常,有一部分出现如下两种情况
1 软件运行出错,让客户重装我发的。net就正常了。
2 软件运行出错,重装我发的。net,装的时候进度非常快,也没有提示任何错误,装完后运行软件还是出错。这些电脑我看了一下,都装有高版本的。net。

请问大家有没有碰到过这种情况呢,是如何解决的呢

------解决方案--------------------
各个版本的FRAMEWORK应该不冲突的的啊,可能是1.1版本本身就不稳定,建议你的客户升级吧
------解决方案--------------------
打包的时候直接将那个可以运行的.net一起打进去,安装包本身支持环境检测
------解决方案--------------------
可能是某些共享组件已被高版本的强制替代了

MSDN:
组件的版本兼容性
--------------------------------------------

应用程序可控制运行它的 .NET Framework 版本,但组件不能。 由于组件和类库是在特定应用程序的上下文中加载的,因此它们会自动在运行应用程序的 .NET Framework 版本上运行。 

由于存在此限制,因此兼容性保证对组件特别重要。 从 .NET Framework 4 版 开始,您可以通过将 System.Runtime.Versioning.ComponentGuaranteesAttribute 特性应用于某个组件,来指定希望该组件与多个版本的兼容程度。 工具可使用此特性来检测组件的将来版本中的兼容性保证的潜在冲突。 

NET Framework 4 与使用 .NET Framework 版本 1.1、2.0、3.0 和 3.5 生成的应用程序向后兼容。 换句话说,使用早期版本的 .NET Framework 生成的应用程序和组件将在 .NET Framework 4 上运行。 

但实际上,.NET Framework 中看似无关紧要的更改和编程技术上的更改会损坏此兼容性。 例如,.NET Framework 4 中的性能改进会公开早期版本中未出现的争用条件。 同样,使用 .NET Framework 程序集的硬编码路径,执行与特定版本的 .NET Framework 的相等比较,以及使用反射获取私有字段的值都不是向后兼容的做法。 此外,每个版本的 .NET Framework 都包含 Bug 修复和可能影响某些应用程序和组件的兼容性的安全相关更改

http://msdn.microsoft.com/zh-cn/library/ff602939.aspx


------解决方案--------------------
检查reference中所有的dll是否都是Specific Version=True
------解决方案--------------------
嗯,应该要么是.net补丁的问题,要么是引用了高版本的dll。可以的话升级到2.0以上吧。1.1很多特性没有写起来麻烦
------解决方案--------------------
客户的机器肯定被某些高版本的替代了。建议楼主升级。
------解决方案--------------------
顶下,大家看下