在这篇文章上阅读了大量资料,仍然无法找到可行的解决方案...
我们有一个“Hello,World1”应用程序 - MainWindow上的一个文本块 - 使用VS2010(C#)构建和测试。目标版本设置为.NET 3.0。 在.NET 3.0(SP2)系统上“部署”时,应用程序在启动时失败。 它在MainWindow中调用InitializeComponent()时失败。 该错误基本上是一个转储。
将相同的应用程序放在使用.NET 3.5的系统上时,它可以完美运行。
注意在调试器期间加载的所有模块(在VS2010中)表明正在加载的dll用于.Net 2.0。 V2.50727。
无法弄清楚如何识别导致负载问题的原因。 思想,策略,工具,建议? (这实际上是在阻止部署。)
PS。在不久的将来升级到V3.5是不可选的 - 应该是,但事实并非如此。
答案 0 :(得分:1)
不要猜测错误的原因,让.NET告诉你。为AppDomain.CurrentDomain.UnhandledException编写事件处理程序,并显示或记录e.ExceptionObject.ToString()的值。
在这种情况下,您可能需要知道InnerException,因为构造函数失败了。将e.ExceptionObject强制转换为Exception。如果您无法理解堆栈跟踪和异常消息,请将其复制/粘贴到您的问题中。
答案 1 :(得分:0)
您可能需要注意安装了哪些版本的.Net以及哪些Service Pack。
正如Microsoft download page所说,.Net 3.5还会更新.Net 3.0和.net 2.0。
另外,请检查您的参考文献。如果您引用的是依赖于.Net 3.5或.Net 3.0 Service Pack的库,则可能会导致您看到的错误。
最后,我建议使用Sysinternals Process Monitor和Process explorer来确切了解哪些dll已加载。