这两天由于runtime sdk for wpf的授权和runtime sdk 其他产品的授权的不一样导致自己混乱不堪。
总结下吧。
sdk 简介
当前ArcGIS runtime sdk 包括一系列的开发的工具。根据平台的划分,针对桌面的有ArcGIS runtime sdk for WPF/java/qt;针对移动端的ArcGIS runtime Sdk for ios/andriod/wp/winodwstore。
从10.2.2后esri新推出了一个sdk 叫做ArcGIS runtime sdk for .NET。runtime sdk for .NET 其实是将上面针对windows 平台的sdk整合了即,runtime sdk for .NET 包含ArcGIS runtime sdk for desktop(相当于ArcGIS runtime sdk for wpf),ArcGIS runtime sdk for windowphone和ArcGIS runtime sdk for window store(针对windows8以上的平板)。目前runtime sdk for .NET 的版本是10.3 beta. ArcGIS runtime sdk for .net 的出现使得原来的ArcGIS runtime sdk for windows phone和windows store 被取消。但是runtime sdk for wpf 依然存在且将会持续更新,目前wpf的版本是10.2.3,今年Q4将会推出10.2.4。
由于runtime sdk for wpf 这个产品出现的比较早,其授权方式和其他的产品不太一样。
授权说明
ArcGIS runtime sdk 系列的产品在开发是不需要许可的。10.2.2的runtime sdk for ios/andriod/.net 安装后不需要使用许可,但是在开发的时候会出现水印。而runtime sdk for wpf安装后不授权,使用basic的功能是不需要许可,但是当使用到standard功能的时候,其会弹出一个对话框说是许可不支持。但是不会出现水印。
下面用个表格来说明wpf的授权级别这个问题:
|----|----|
|--开发许可--|--所有的功能都可以用,但是程序初始化的时候会弹出对话框--|
|--basic许可--|--可以使用除以为的功能--|
|--standard许可--|--所有功能包含LoacalServer--|
除了standard许可外,还可以选择购买Sptail Extension;3dExtension和NetworkExtension许可
如何授权
从10.2.2后,arcgis runtime sdk for ios、andriod、.net推出了离线的功能。这带来了授权的改变。runtime sdk for wpf作为sdk中的一员其授权方式 也发生了改变。
10.2.2以前的产品
NB:10.2.2以前的arcgis runtime 这个产品的授权wizard很是诡异,通过目前知道java和wpf都有问题
要想能够正常的授权,需要下面的三个原则:
-
使用runtime sdk 自己的授权的wizard
-
不能选择生成authorize.txt 文件,故离线授权的方式不行
-
需要手动填写prvc的授权码,不能使用自己带过来的
下面依次展开说明:
STEP1: 使用自己的授权wizard
通常用户获取到的许可文件为prvc文件。ArcGIS 其他的产品,如ArcGIS for Server当机器处于联网环境下,通过双击prvc文件,即可授权。但是双击runtime sdk 的 prvc 会出现错误:invalid activation id。如图1所示**
出现这种错误的原因是由于通过双击prvc的方式,默认启用其他产品的授权wizard,而不是wpf的,runtime sdk for wpf 安装后有自己的wizard。通过使用wpf自己的授权wizard即可。如图2所示
STEP2: 输入授权码
生成授权文件,
STEP3:获取ecp文件
去keycodes中获取授权码(C:Program Files (x86)ESRILicense10.2sysgen),将授权码粘贴到txt中,后缀改成ecp文件
STEP4:程序中绑定
授权完成后,通过runtime sdk for wpf的目录下的license viewer可以查看可以的许可文件。将该代码粘贴到应用程序的启动代码前,即可使用,如图所示
还有一种特殊的情形,有的开发人员,并不会安装sdk,而是直接引用sdk中的dll文件,这样的话,就没有办法使用授权的wizard,也就没有办法授权,建议是在可以使用的机器上授权
目前授权,只能严格按照上面的步骤。
10.2.2 后的授权
10.2.2以后,在runtime sdk的【开始】目录下面,没有了上面提到了Authorization wizard和license viewer的两个工具。
可以直接在下面的SetLicense方式中绑定ecp文件中的编码(将ecp文件使用notepad打开)。
basic的部署是不需要任何授权的,所以basic级别的授权不需要向以前粘贴许可字符串代码,但是在程序端,还是需要添加以下代码。
ArcGISRuntime.Initialize()
而standard通过下面的代码授权,授权码就是ecp文件中的代码
ArcGISRuntime.SetLicense("runtimestandard,101,rud####,none,0JLFD4S3####F002179",
"runtimespatial,101,rud###,none,KG##H148");
除了runtime sdk for wpf外,其他sdk的授权方式从10.2.2后完全改变,需要通过portal,online或者通过授权文件去授权standard的许可,而basic需要去develop center中生成client id来授权。