翻譯|使用教程|編輯:王香|2019-01-31 10:16:32.000|閱讀 316 次
概述:本節介紹了為符合TeeChart設計時和運行時授權體系結構而要采取的配置元素和設置步驟。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
本節介紹了為符合TeeChart設計時和運行時授權體系結構而要采取的配置元素和設置步驟。
TeeChart使用基于Microsoft的System.Component.LicenseProvider類的授權證控制。當通過TeeChart安裝程序安裝TeeChart時,會添加一個注冊表授權證密鑰,其可見部分可以在HKEY_LOCAL_MACHINE \ SOFTWARE \ Steema Software \ TeeChart.NET密鑰下看到:
密鑰的存在以及相應的“未發布”密鑰代碼允許在Visual Studio.NET的設計時使用TeeChart,并允許將密鑰編譯為運行時可執行(.exe)和庫(.dll)文件,以便TeeChart.dll和TeeChart.languages.dll文件可以與已編譯的應用程序一起分發,但不提供TeeChart選項作為安裝位置的設計時組件。
包含TChart,Chart或WebChart組件的項目必須包含Licenses.licx文件。當向其添加任何圖表時,Visual Studio IDE會自動將該文件添加到TChart(Windows表單圖表)或WebChart(Web表單圖表)項目中。對于非設計時圖表應用程序,例如,在運行時手動創建圖表 “Steema.TeeChart.Chart c = new Steema.TeeChart.Chart();” ,然后您必須手動將授權證文件添加到項目,您可能使用的示例文件包含在Utils文件夾中。您可以通過在VS.NET解決方案資源管理器中選擇項目并單擊鼠標右鍵單擊“ 添加 ”來添加它 AddExisting Item ',文件類型為'All files',并選擇'Utils \ Licenses.Licx'。
如果您已將帶有授權證的TeeChart成功編譯到dll中,請注意,如果您在另一個應用程序中使用該dll,則需要確保將TeeChart授權證行添加到最終應用程序的Licenses.licx文件中即使該應用程序本身可能沒有直接引用TeeChart。如果最終用戶應用程序不是在Visual Studio .NET中開發的,那么在最終編譯時不需要授權證文件和授權證本身。
如果您在具有開發人員授權證的計算機上不會重復使用您的DLL的環境中工作,請確認重用是否可能屬于“插件使用”的范圍,如下一節所述,在插件dll中使用TeeChart。如果您認為您的程序集(使用TeeChart)需要由具有TeeChart類和方法知識的容器重新使用或需要引用程序集,但是在沒有TeeChart Developer License的計算機上請確認相關機器已獲得在設計時使用TeeChart的授權。某些分銷或團隊工作情況可能需要通過特殊授權條件來解決,Steema人員在info@st??eema.com可以幫助進行授權證查詢。
標準版的TeeChart for .NET支持授權控制,以便在動態加載的插件中使用。該插件通常是一個包含TeeChart的程序集,可以在運行時由容器應用程序使用NET的“Assembly.Load”方法或類似方法動態加載。要允許容器應用程序加載和運行TeeChart而不需要容器級別的licenses.licx文件,TeeChart提供了一個默認構造函數的替代方法,通過該構造函數,編譯它的dll程序集將自身作為參數傳遞,并在該級別進行授權證檢查不在容器應用程序的DLL。請注意,容器應用程序可能無法直接向TeeChart進行代碼調用。它可以打開并運行TeeChart dll,而dll本身就是自治的,可以自己調用TeeChart。允許從容器應用程序進行Chart調用的規則的例外是,如果TeeChart的方法被可以在獨立接口中定義的方法“包裝”(次要調用)。可以修改此處描述的示例以包括此類調用。
包含TeeChart的插件會在創建時加載TeeChart將其自身作為參數傳遞。只有在第一次打開TeeChart時才需要使用重載的構造函數,以允許進行授權證檢查。此后,可以通過常規手段使用TeeChart。使用的一個例子如下。在此示例中,TeeChart的“虛擬”創建在表單創建時強制執行初始授權證檢查。
例: 在此示例中,PluginShared.Factory是由宿主應用程序引用的接口,它提供了一個名為“CreateForm”的方法。容納TeeChart的程序集實現了PluginShared.Factory,因此也提供了CreateForm方法,但它有自己的實現(在其中加載TeeChart)。主機識別CreateForm方法調用,而無需了解TeeChart特定程序集。
請注意。容納TeeChart的程序集必須包含Licenses.licx文件,并在具有有效TeeChart開發人員授權證的計算機上進行編譯。
裝配外殼TeeChart(例如PluginWithTeeChart.dll)
Class:
namespace Plugin { public class FactoryImpl : PluginShared.Factory { public System.Windows.Forms.Form CreateForm() { try { return new PluginWithTeeChart.FormWithChart(); } catch (Exception e) { MessageBox.Show("failed to create plugin with error: " + e.ToString()); return null; } } } }
Form:
namespace PluginWithTeeChart { public partial class FormWithChart : Form { public FormWithChart() { //discardable Chart forces License check Steema.TeeChart.TChart tempChart = new Steema.TeeChart.TChart(this); tempChart = null; InitializeComponent(); //<---- Normal application code. Could run here various TeeCharts without need for overloaded constructor } } }
容器應用程序(例如HostApp.exe)
容器可能按以下方式裝載TeeChart外殼組件(dll)。HostApp引用發布CreateForm方法的公共接口Plugin.FactoryImpl非常重要。
void LoadTeeChartPlugin(string pluginName) { string pluginName = @".dll"; try { Debug.WriteLine("Loading plugin assembly " + pluginName); Assembly assembly = Assembly.LoadFrom(pluginName); string factoryTypeName = "Plugin.FactoryImpl"; Type t = assembly.GetType(factoryTypeName); if (t == null) { MessageBox.Show("Type: " + factoryTypeName + " not found in plugin assembly"); return; } PluginShared.Factory factory = (PluginShared.Factory)assembly.CreateInstance(t.ToString()); System.Windows.Forms.Form f = factory.CreateForm(); f.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
VC ++中的授權實現并不像其他.NET編程語言那樣透明。您可以按照Tim Adler在microsoft.public.dotnet.framework新聞組中描述的步驟成功實施VC ++項目的授權。
“我的解決方法很簡單:創建一個新的解決方案,并在其中一個新的C#項目,使用SAME應用程序名稱作為您的C ++應用程序。創建一個虛擬表單并將需要授權的每個組件放到此表單上。或者,編輯licenses.licx文件,自動生成以引用每個組件。然后構建應用程序。然后導航到調試目錄并將“* .licenses”文件復制到C ++應用程序的基本目錄中。然后在項目選項下 - >鏈接器 - >輸入 - >嵌入C ++應用程序的托管資源文件設置,請參閱此授權證文件。然后執行'重建'。“
Steema.TeeChart.Chart, TeeChart Steema.TeeChart.TChart, TeeChart Steema.TeeChart.Web.WebChart, TeeChart
內容應至少包括項目創建的類的名稱,通常是基于Windows窗體的項目的Steema.TeeChart.TChart,以及用于按代碼和Steema.TeeChart創建圖表的項目的Steema.TeeChart.Chart。 Web.WebChart用于包含TeeChart的WebChart組件的WebForm項目。 將圖表添加到表單NET時,會自動添加稍長的版本,也是正確的,包括程序集版本號和公鑰。
Steema.TeeChart.TChart, TeeChart, Version=1.1.1864.22788, Culture=neutral, PublicKeyToken=9c8126276c77bdb7
向舊的“非授權”項目添加授權證支持
請注意,對于使用以前版本的TeeChart創建的表單應用程序,授權證文件不存在,您可以通過將“工具”調板的“Steema”部分中的“圖表”拖動到任何文件來快速生成它。項目的表格,然后刪除它。新拖動的圖表會激發IDE添加Licenses.licx文件。
使用Licenses.licx文件編譯的項目的.exe或.dll可以作為運行時應用程序與TeeChart.dll(以及TeeChart.Languages.dll文件,如果需要)一起分發,而無需任何TeeChart要安裝的運行時授權證文件或注冊表項。
我們看到的可能的錯誤情況是: - 編譯時出現錯誤消息:
“無法將授權證文件'licenses.licx'轉換為二進制資源。” 可能的原因是開發授權證注冊表項未到位。請檢查本章中描述的可見密鑰條目,以查看其中是否存在任何明顯的問題或遺漏。解決問題的一個選項是使用TeeChart安裝程序重新安裝TeeChart,安裝程序會設置注冊表項。如果問題仍然存在,請通過支持論壇聯系TeeChart支持。
- 嘗試在未安裝designkey的計算機上運行編譯(運行時)輸出應用程序時出現授權證錯誤。 檢查項目是否包含Licenses.licx文件。將圖表添加到表單時可能已自動添加,或者可能已手動添加。在任何一種情況下,請確認項目中的Licenses.licx文件是否為嵌入式資源。您需要激活“顯示所有文件”以在項目的“解決方案資源管理器”窗口中查看Licenses.licx的存在。
- 問題的另一個可能原因是licenses.licx文件內容不正確。請檢查內容是否反映了本章前一部分中描述的內容。
自定義主題是小* .xml文件,可以通過簡單的代碼行創建:
tChart1.Export.Theme.Save(@ “C:\ Steema \ MyTheme.xml”); 此自定義主題封裝了許多與圖形,畫筆和筆的顏色以及面板,軸,頁眉,頁腳,圖例等樣式相關的圖表圖形設置。創建后,這些主題可以顯示在圖表編輯器的主題選項卡中,名稱出現在那里作為文件的名稱。為了使圖表編輯器知道在哪里查找這些文件,有一個注冊表設置,它指定本地機器上的文件夾:
[HKEY_LOCAL_MACHINE\SOFTWARE\Steema Software\TeeChart.NET] "ThemeFolder"="C:\Program Files\Steema Software\TeeChart for .NET v3\Themes"
只需將自定義主題(* .xml文件)添加到此鍵中指定的文件夾,圖表編輯器就會讀取并顯示它們。
TeeChart標準商業版通過nuget.org網站作為評估裝配提供,功能齊全,在圖表面上顯示水印。注冊授權證時,會向被授權方提供名為teechart.licenses的授權證文件。此文件可能包含在項目中以激活授權證并隱藏評估水印。
teechart.licenses可能包含在項目中,如啟動指南中所述:https ://www.steema.com/linkIn/tnetstd_startup
一旦包含在項目中并與其正確關聯(例如,添加為一個項目的嵌入式資源)然后該應用程序在技術上準備分發。
購買TeeChart Pro AciveX正版授權,請點擊“”喲!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn