在.net framework 2.0 环境下开发 .net framework 3.5 的程序
一、案例分析:
由于客户端部署及安装时,只想安装.net framework 2.0的框架,而你的项目需要使用.net framework 3.5的一些特性,如linq,扩展方法之类的。如果安装传统的话, 你需要创建一个.net framework 3.5的项目才能使用这些特性,而我需要我们的客户端使用的朋友们的机器上只安装2.0的框架。本文告诉你如何在.net framework 2.0的环境下开发3.5的程序。
二、如何做:
1. 创建一个.net framework 2.0的winform项目,如图所示:
2. 接着添加引用,浏览到C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5下面的目录,可以发现目录中包含很多3.5的dll文件:
如果你要使用linq特性,你可以选择System.Core.dll这个文件,并且将会有以下提示:
直接跳过,选Yes,再看我们的解决方案项目视图:
可以发现,System.Core打了一个黄色的感叹号,说明还没有引用成功。
3. 接下来,选择引用中的 System.Core ,右键选择“属性”,可以看到:
然后请把Specific Version设置成False,Copy Local设置成True,可以发现,原先的黄色的感叹号不见了,说明引用成功。
现在你就可以开始使用linq之类的特性了。
代码如下:

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//初始化随机数组
int[] array = new int[8] { 5, 1, 1, 3, 2, 4, 4, 3 };
//过滤重复的并且升序排序
array = array.Distinct().OrderBy(o => o).ToArray();
MessageBox.Show(array.JoinWith(","));
}
}
//扩展方法静态类
public static class ArrayExtension
{
//数组连接成字符串方法
public static string JoinWith(this IEnumerable arr, string separate)
{
StringBuilder result = new StringBuilder();
foreach (object i in arr)
result.Append(i).Append(separate);
return result.ToString().TrimEnd(separate.ToCharArray());
}
}
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//初始化随机数组
int[] array = new int[8] { 5, 1, 1, 3, 2, 4, 4, 3 };
//过滤重复的并且升序排序
array = array.Distinct().OrderBy(o => o).ToArray();
MessageBox.Show(array.JoinWith(","));
}
}
//扩展方法静态类
public static class ArrayExtension
{
//数组连接成字符串方法
public static string JoinWith(this IEnumerable arr, string separate)
{
StringBuilder result = new StringBuilder();
foreach (object i in arr)
result.Append(i).Append(separate);
return result.ToString().TrimEnd(separate.ToCharArray());
}
}
4. 最后编辑成功,运行如下:
OK,大功告成了 :)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫
2009-04-03 学习笔记(一)