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