這兩天因爲runtime sdk for wpf的受權和runtime sdk 其餘產品的受權的不同致使本身混亂不堪。java
總結下吧。ios
當前ArcGIS runtime sdk 包括一系列的開發的工具。根據平臺的劃分,針對桌面的有ArcGIS runtime sdk for WPF/java/qt;針對移動端的ArcGIS runtime Sdk for ios/andriod/wp/winodwstore。windows
從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功能的時候,其會彈出一個對話框說是許可不支持。可是不會出現水印。spa
下面用個表格來講明wpf的受權級別這個問題:.net
|----|----|
|--開發許可--|--全部的功能均可以用,可是程序初始化的時候會彈出對話框--|
|--basic許可--|--可使用除覺得的功能--|
|--standard許可--|--全部功能包含LoacalServer--|3d
除了standard許可外,還能夠選擇購買Sptail Extension;3dExtension和NetworkExtension許可code
從10.2.2後,arcgis runtime sdk for ios、andriod、.net推出了離線的功能。這帶來了受權的改變。runtime sdk for wpf做爲sdk中的一員其受權方式 也發生了改變。blog
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)\ESRI\License10.2\sysgen),將受權碼粘貼到txt中,後綴改爲ecp文件
STEP4:程序中綁定
受權完成後,經過runtime sdk for wpf的目錄下的license viewer能夠查看能夠的許可文件。將該代碼粘貼到應用程序的啓動代碼前,便可使用,如圖所示
還有一種特殊的情形,有的開發人員,並不會安裝sdk,而是直接引用sdk中的dll文件,這樣的話,就沒有辦法使用受權的wizard,也就沒有辦法受權,建議是在可使用的機器上受權
目前受權,只能嚴格按照上面的步驟。
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來受權。