我有一个应用程序,我在VS 2008中开发,我的目标是.NET 3.
不幸的是,当我在装有.NET 3的干净计算机上安装时,它会崩溃。除了通常的TypeInitilisationError之外,我也不知道为什么。
将同一台计算机更新为.NET 3.5SP1使其运行正常。
但仍然......它不起作用。
我做错了什么?
答案 0 :(得分:2)
您是否尝试确定每台计算机上安装的框架版本。如果您正在使用.Net 3.5 SP1来编译程序,它实际上包含.Net 3.0 sp2,它有一些额外的功能(MultiSelector类来命名一个),这在.Net 3.0 sp1中是不可用的。这是.Net 3.0的默认安装从Microsoft下载。
您可以在这里尝试一些有用的软件: NetVersionCheck
修改强> Visual Studio不会告诉你有关此的任何错误,因为它正在使用的.Net 3.0版本似乎一切正常。我使用WPF工具包遇到了这个问题,因为它需要MultiSelector类,直到.Net 3.0 sp2才到达。所以,Jonathan,如果你能在'Fresh'.net 3.0计算机上向我们展示你的程序的错误输出,那么我们可能会告诉你在.Net 3.0 sp2中你使用的是什么,在较低版本中不支持
另外,我通常使用VS2005程序,我希望在低于.Net 3.5sp1的运行时运行,但这实际上只适用于.Net 2.0应用程序。
如果我们知道您正在使用的.Net 3.0中的哪些组件,那么它也会有所帮助!
答案 1 :(得分:0)
诺亚
感谢您的回答。 因为VS2008,在我的开发计算机上我有最新的3.5SP1。 但在Visual Studio中,我选择3作为目标。
并检查我安装在干净的计算机上3.0 ...
所以你的命题确实告诉我安装了哪个框架,但没有告诉我程序在3.0中没有的最新框架中使用了什么。
此外,在VS2008中必须打破一些东西,因为它应该让我感到温暖......
答案 2 :(得分:0)
我觉得这是VS 2008的一个问题,但显然MS感觉不同。
VS 2008附带.NET 3.5,一些.NET 3.0 Service Pack和.NET 2.0 SP1。它只能检测您使用的是不属于安装在计算机上的版本的内容,而不是您是否符合某些Service Pack。这意味着如果你的目标是.NET 2.0,但是在没有.NET 2.0 SP1的机器上安装你的软件,如果你使用特定于SP1的任何东西,你的应用程序在尝试拨打电话时就会失败。
我发现检测此问题的唯一方法是检查Service Pack的更改列表或目标.NET 3.5。如果安装了.NET 3.5,则随附的Service Pack也是如此。这不是一个好的解决方案,但它是我发现的唯一一个。