Nopcommerce2.70版本如何在vs2010中打开
问题:从官方下载2.70版本之后,我们直接用vs2010打开,项目文件呈现灰色,显示无法加载项目文件,我们该怎样才能打开呢?
先了解下Nopcommerce2.70版本,Nopcommerce2.70是基于微软.NET4.5、MVC4.0开发的 ,那么第一步,我们先将文件中的.NET4.5该为vs2010中的.NET4.0。
解决的办法:
1、首先我们查找该项目文件中,所有后缀名为.csproj的文件,然后逐个打开,找到 <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>,将其改为 <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>;
2、这样我们正常打开项目文件,然后我们运行编译,发现报错,提示未将项目引用到实例中,我们找到此项目的引用文件,看到是net45-full\DotNetOpenAuth.Core.dll,我们打开文件目录,会看到还有一个net40-full,我们把他改为net40-full,再运行一遍,发现此错误没有了,但还有其他问题,下一步进行处理。查找所有项目中web.config的 <compilation targetFramework="4.5">语句,并替换为 <compilation targetFramework="4.0">。(原因有的项目引用了.NET4.5的文件,vs2010无法识别。)
3、提示命名空间“System.Web”中不存在类型或命名空间名称“ModelBinding”。是否缺少程序集引用?,这是.NET4.5中新增的命名空间,直接注释掉即可,这时再运行编译就不会报错了。
4、下面我在项目中添加了2.6版本的网银在线支付插件,在Nop2.65的版本中,修改一下2.6插件的版本号是可以直接使用的,但在Nop2.70中这个插件并不支持。
我们来修改下,使其支持Nop2.70版本,打开ChinabankPaymentProcessor.cs文件,找到 public decimal GetAdditionalHandlingFee()方法,将其该为public decimal GetAdditionalHandlingFee(IList<ShoppingCartItem> cart)就ok了;
因为在Nop2.70的版本中,支付插件接口文件IPaymentMethod.cs的decimal GetAdditionalHandlingFee();方法改为了 decimal GetAdditionalHandlingFee(IList<ShoppingCartItem> cart);
现在报错没有,让我们来运行一下程序。
5、支付宝插件安装,直接在官方网站下载支付宝插件,把文件解压到Plugins/目录下,运行编译后,会在Presentation/Nop.Web/Plugins生成相应的文件,注意我们在发布网站的时候,要把生成的Plugins目录下的文件,放到bin目录下,否则会找不到插件。
6、第一次运行要求安装Nop,我们按要求进行填写网站参数。打开网站之后,语言默认是英文的,我们可以到官方下载一个中文包,这时Nop官方插件的下载地址http://www.nopcommerce.com/extensions.aspx,我们可以在右侧根据版本选择插件,目前nop只有2.6的语言包,2.7是可以使用的,但是安装之后部分新增加的字段并没有翻译,安装之后,自己可以把没翻译的部分,自己翻译下即可。添加安装包的方法,进入管理后台选择菜单Configuration选择Languages项,点击Addnew,先增加一个语言名字,其中Flag image file name: 填写 cn.png,显示中国国旗的图标,填写完之后,点击保存并编辑,在当前的窗口,选择导入的资源选项,在新窗口中选择下载的语言包即可。修改网站货币的方法,配置—货币管理,设置Nop的网站货币为人民币。语言包的设置如下图:
7、使用过Nop的可能知道,Nop不支持中文的pdf文件,每当导出包含中文字体的数据,导出的中文都不显示,接下来我们使其支持中文。
我们找到Libraries\Nop.Services\Common\PdfService.cs文件根据 protected virtual Font GetFont() 方法,我们找到\Libraries\Nop.Services\Installation\InstallationService.cs 文件中的 protected virtual void InstallSettings()方法,该方法中包含 FontFileName = "FreeSerif.ttf",不难理解这是我们在安装nop的时候,Nop默认的pdf字体。然后我们到我们电脑的c\windows安装目录\fonts\目录下找到simhei.ttf(simhei.ttf是中文黑体),复制到\Presentation\Nop.Web\App_Data\Pdf目录下,把原来的FreeSerif.ttf删除,该名为simhei.ttf为FreeSerif.ttf,再导出中文pdf文件就正常了。