Microsoft.NET兼容性

Microsoft.NET兼容性,.net,visual-studio,.net,Visual Studio,我使用VS2010和.NET2.0(VB.NETWindows窗体应用程序)的目标 我决定使用2.0,因为我知道如果用户有更高的版本就可以了 我用.NET2.0在XP上测试了我的应用程序,效果很好 我卸载了.Net 2.0[以查看用户可能收到的错误消息] [C:\Windows\Microsoft.Net\Framework\v2.0.50727中仍保留了一些文件,但不是所有文件] 我安装了.NET4 […还需要安装Windows Installer 3.1和Windows Imaging组件

我使用VS2010和.NET2.0(VB.NETWindows窗体应用程序)的目标

我决定使用2.0,因为我知道如果用户有更高的版本就可以了

我用.NET2.0在XP上测试了我的应用程序,效果很好

我卸载了.Net 2.0[以查看用户可能收到的错误消息]

[C:\Windows\Microsoft.Net\Framework\v2.0.50727中仍保留了一些文件,但不是所有文件]

我安装了.NET4 […还需要安装Windows Installer 3.1和Windows Imaging组件,作为先决条件…]

但是现在当我运行我的应用程序时,我得到了错误- “找不到运行此应用程序的运行时版本”

那么我应该推荐什么给我的客户呢?要安装2.0吗

谢谢

阿塔拉


更新:我将建议我的XP用户安装.NET3.5SP1.NET2.0应用程序需要.NET2.0才能运行。一个.NET 3.0或3.5应用程序只需要.NET 2.0加上它实际使用的任何附加.NET 3.0/3.5程序集


.NET 4.0应用程序需要.NET 4.0 CLR,因此必须安装.NET 4.0。

构建项目时,请尝试访问其属性并更改“目标框架”。并选择客户拥有的框架。这可能会解决您的问题。

您有两个选择:

  • 建议您的客户端安装.NET3.5SP1(不再有人安装.NET2.0)
  • 以.NET 4.0为目标,要求您的客户安装.NET 4.0(这可能不会被很好地接受,尤其是如果您的客户是一些公司政策不允许的大公司)

    • 仅仅因为您安装了.NET 4.0,并不意味着您的应用程序的目标是.NET 4.0

      如果您在Visual Studio中修改项目设置以生成目标.NET 4.0,则不应再出现错误(但您的客户端将需要安装.NET 4.0运行时)

      就个人而言,如果你想发布一些将要在大多数已经存在的客户端机器上运行的东西,我会以.NET3.5为目标。大多数人已经安装了运行时

      如果没有,那么很容易找到


      .

      您应该构建一个安装程序(Visual Studio中的一个安装/部署项目),其中包括2.0可再发行版本,以便当您的客户端安装软件时,它将安装运行所需的.net framework。

      以下简要概述了所选windows操作系统需要的框架[在我看来,这更常见]

      • XP:2.0、3.0、3.5、4.0
      • Vista:3.5、4.0
      • Win7:4.0
      如您所见,Microsoft的框架在操作系统发布和预装时已经发布

      另外值得注意的是,当您安装.NET 3.5 sp1时,您会自动安装3.0和2.0。这是因为它们都运行在相同的基础框架上,并且每个版本都基于以前的版本构建

      .NET 4是一种完全不同的动物。它运行在不同的底层框架上,因此在安装时不会自动获得.NET framework的较旧版本


      希望这会有帮助。

      和.NET 3.5 SP1可以工作吗?我在Vista和Windows 7上测试了我的应用程序,没有问题。我不认为XP会导致错误…是的,它可以工作,.NET 3.5使用CLR 2.0,它与.NET 2.0相同,所以运行应用程序没有问题。我的NET 2.0应用程序在Windows 7和Vista上运行得很好,那么哪个版本呢我应该告诉我的XP用户安装吗?@Atara:Vista包括3.0和Win7,甚至包括3.5。你可以要求安装2.0,或者如另一个anwser中所说的3.5 SP1。设置它很简单,所以它可以在其中任何一个上运行。添加一个.config文件并使用
      元素两次。对于“v2.0”和“v4.0”“我敢肯定,这会很好。”汉斯:考虑不要删除你的答案。这是一个很好的答案,有很高的票数,对社会很有价值。IMO.,下台者显然不理解对话。“罗伯特:太多的票数,我会把它存在一个更好的问题上。想问一下吗?”汉斯:这里问: