V4 V5

適用する

アプリケーションの起動時に 1 回だけ、コントロールを生成する前に呼びます。

using unvell.ReoGrid.Core.License;

ReoGridLicense.SetLicense("eyJsaWNlbnNlZSI6...");

キーの形式が不正、Base64 が壊れている、署名が一致しないといった場合は ArgumentException が 送出されます。署名を検証してから内容を信頼する順序は固定されており、キーは偽造できません。

キーをソースコードに直接埋め込まず、設定ファイルや環境変数から読む形を推奨します。

var key = Environment.GetEnvironmentVariable("REOGRID_LICENSE");
if (!string.IsNullOrEmpty(key))
	ReoGridLicense.SetLicense(key);

1 本のキーがすべてを賄う

バージョン非依存アセンブリバージョン・ビルド日とキーを照合しません。V4 用に発行済みのキーが V5 でもそのまま通ります。再発行は不要です
プラットフォーム非依存キーにプラットフォームの情報はありません。1 本で WinForms / WPF / Avalonia / ヘッドレスすべてを賄います

更新が切れても動き続けます

ReoGrid One は初回購入の永続ライセンス + 任意の年間更新です(DevExpress や Telerik と同じ形)。

年間更新をしなかった場合でも、手元のバイナリは期限なく動作します。時限で停止する仕組み (kill switch)は実装していません。更新権の期限は LicenseInfo.UpdatesUntil として読み取れますが、 ライセンス判定には使いません。更新が切れて変わるのは「新しいビルドを入手できるかどうか」だけで、 これはポータルや NuGet の配布側で制御されます。

すでに出荷したアプリケーションが、更新期限を理由に動かなくなることはありません。

未適用時の動作

有効なキーが無い状態(未適用・期限切れ・allowedAssembly 不一致)では、ファイル入出力がすべて拒否されます。画面のグリッドは読み取り専用として残ります。

動く制限される
画面表示・スクロール・選択XLSX / CSV / PDF / reogrid-json の読み書きがすべて ReoGridLicenseException
数式の再計算、モデル API(SetText など)の直接操作3 つのコントロールともセル編集が不可(読み取り専用)
画面と印刷の描画に透かしが入る

入出力を例外にしているのは、ヘッドレス用途への対応です。サーバー側でファイルを生成する使い方には透かしを見せる相手がいないため、黙って出力せずに失敗させます。画面があるアプリでは透かしが状況を伝えられるので、グリッド自体は読み取り専用で動かします。

この判定は組み込み先のアプリケーションでも同じです。トライアルキーの期限が切れれば、そのキーで動いていたアプリケーションも同様に入出力が止まり、編集ができなくなります。

状態を確認する

if (!ReoGridLicense.IsLicensed)
{
	// 未適用・キーが不正・トライアル期限切れのいずれか
}

var info = ReoGridLicense.Current;
if (info != null)
{
	Console.WriteLine(info.Licensee);      // 使用許諾先
	Console.WriteLine(info.Tier);          // Trial / Production
	Console.WriteLine(info.ExpiresAt);     // トライアル期限(製品版は null=無期限)
	Console.WriteLine(info.UpdatesUntil);  // 更新権の期限(判定には使われない)
}

IsLicensed の判定に使われるのは、署名・ExpiresAt(トライアル期限)・AllowedAssembly (アセンブリ紐付けがある場合)の 3 つだけです。

LicenseInfo の主なメンバー

メンバー内容
Licensee / Email使用許諾先
TierTrial または Production
IssuedAt発行日
ExpiresAtトライアル期限専用。製品版のキーでは省略され、無期限を意味する
UpdatesUntil更新権の期限。判定には使わない
AllowedAssembly特定アセンブリへの紐付け(設定されている場合)
IsExpired / IsValid期限判定

開発端末のアクティベーション(5.1 以降)

Professional ライセンスは開発端末 3 台までの契約です。端末数の上限付きで発行されたキーは 1 本につき開発端末 1 台で使います(購入時に 1 本、2 本目以降はポータルで 3 本まで追加発行)。5.1 以降のパッケージは、ビルドのたびにその端末がキーを使ってよいかを確かめます。

対象端末数の上限付きのキーだけ。上限の無いキー(それ以前に発行されたキー、Enterprise のキー)は対象外で、通信もしません
いつビルド時(NuGet パッケージに同梱した MSBuild タスク)と、デバッガを付けて実行したとき。ビルドでの確認は 1 日 1 回で、結果は obj/ に記録されます
送るものキー、端末上で生成した識別子(ハードウェア由来ではありません)、端末名、SDK のバージョン。ソースコードや個人情報は送りません
オフライン一度認証すると、その後 3 日間はオフラインでもビルドできます。オフライン・閉域での開発には Enterprise を使ってください
CIビルドサーバーも 1 台に数えます。同じパイプラインは毎回同じ枠に収まるので、実行のたびに枠を消費することはありません

配布したアプリケーションは一切通信せず、停止もしません。 確認を行うのはパッケージの ビルド資産(build/ と tasks/)とデバッガ接続時だけで、どちらもエンドユーザーの環境には届きません。

キーの置き場所

ビルドは次の順にキーを探します。キーをプロジェクトファイルに書く必要はありません。

  1. MSBuild プロパティ ReoGridLicenseKey
  2. 環境変数 REOGRID_LICENSE
  3. %LOCALAPPDATA%\unvell\reogrid\license.txt(macOS / Linux は ~/.local/share/unvell/reogrid/license.txt)

キーが見つからないビルドは、そのまま成功します(評価中のビルドにキーはありません)。

認証できないとき

ビルドがエラー RG1001 で止まります。

メッセージの内容対処
別の端末で使用中ポータルのライセンスキー画面で、使っていない端末の割り当てを解除する
ライセンスサーバーに接続できないネットワークやプロキシを確認して再ビルドする。直近 3 日以内に認証していればオフラインでも通ります

実行時の解除はできません

一度適用したライセンスを実行中に取り消す方法はありません。テスト用の内部 API は存在しますが、 公開されていません。

次に読む

ページの内容は役に立ちましたか?