如果客户端计算机没有我编写应用程序的相同/更高版本的.net,我的应用程序是运行还是有问题?

时间:2012-12-17 14:47:19

标签: c# .net

如果我使用4.5版对我的.net应用程序进行编码,而运行该应用程序的客户端计算机只有.net版本2.0,那么该应用程序是否会运行?

在.net中编码(主要是在c#中)你们是否记得客户可能使用的.net版本?

另外,如果我使用了一些较新的功能(例如linq2sql,可选参数等等),这些功能仅在以后的.net版本中可用于编写我的应用程序,那么如果客户端机器只有更早的版本,它们会有效吗版本

2 个答案:

答案 0 :(得分:5)

您的客户必须拥有您定位或更高的框架。因此,如果您编写使用4.5框架的.Net应用程序,则您的客户端必须在其计算机上安装4.5框架,否则您的应用程序将无法运行。如果您编写一个面向.Net 2.0框架的应用程序,您的客户端可以运行任何版本的.Net 2.0或更高版本并使用您的应用程序。

查看MSDN上的.Net Version Compatibility文章:

  

向后兼容性意味着为特定版本的平台开发的应用程序将在该平台的更高版本上运行。 .NET Framework尝试最大化向后兼容性:为.NET Framework的一个版本编写的源代码应在.NET Framework的更高版本上编译,并且在一个版本的.NET Framework上运行的二进制文件在更高版本上的行为应该相同.NET Framework。

另请参阅MSDN上的.Net Framework Versions and Dependencies文章:

  

.NET Framework的每个版本都包含公共语言运行库(CLR),基类库和其他托管库。本主题按版本描述.NET Framework的主要功能,提供有关基础CLR版本和关联开发环境的信息,并标识Windows操作系统安装的版本。

     

下图总结了版本历史记录,并标识了Windows安装的版本。

     

.Net guide

在决定.Net目标版本时需要考虑很多因素,包括运行更新框架的好处(它是否具有您想要使用的新功能)。请查看此Stack Overflow问题,了解有关该主题的更多想法:What .NET Framework and C# version should I target with my class library?

答案 1 :(得分:1)

如果我使用4.5版对我的.net应用程序进行编码,而运行该应用程序的客户端计算机只有.net版本2.0,那么该应用程序是否会运行?

是!您的客户端将无法运行该应用程序。 您的客户需要相同版本的.net或更高版本的版本!

在.net中编码(主要是在c#中)你们是否记得客户可能使用的.net版本?

是的,我们一般会询问客户端他已安装的版本,如果您打算使用更新版本的框架,请询问客户是否对此感到满意。

另外,如果我使用了一些较新的功能(例如linq2sql,可选参数等等),这些功能仅在以后的.net版本中可用于编写我的应用程序,那么如果客户端机器只有更早的版本,它们会有效吗版本

是的,它肯定会产生这种效果,因为客户端将能够运行针对您编码的.net框架版本编译的应用程序