工程更改为不直接引用 .Net Framework3.5, 只是引用了那些功能对应的 Dll :即 System.Core.dll , System.Data.DataSetExtensions.dll , System.Xml.Linq.dll 。把它们 copy 到了 Bin 文件夹下引用。所以打包的时候不需要引用 .Net Framework3.5 ,把这几个 Dll 打包进去就可以了,但是运行的时候,需要至少 .Net Framework2.1 SP1 ,它的名称是 NetFx20SP1_x86.exe ,只有 20 多 M ,直接去网上下载就可以了。
1 按正常顺序打包,把相应的目录按照正确的结构在打包工程中调整好。
2 如果打包工程自动监测到依赖 .Net Framework3.5 ,把这个依赖去掉。
3 在打包工程的步骤里,选择阴影部分( Launch Conditions Editor ) , 如图
左边编辑区域如图
右击 Launch Conditons 节点, Add Launch Conditons ,编辑属性如图
注意 InstallUrl 这一项,我这样写表示与安装文件在同一目录,故打好包之后,要把 .Net Framework2.1 SP1 跟安装文件放一起。这样,当用户第一次运行的时候会安装 .Net Framework2.1 SP1 ,以后安装就不用了。
4 这样就能正常运行了,不用安装 3.5 ,最后打好包,提交给用户。
出处:http://blog.csdn.net/I_Iverson/archive/2009/06/22/4287977.aspx