SSIS「評価期間が終了しました」エラーの原因と対処法|Visual Studio 2019とSQL Server 2017環境向けガイド

SSIS パッケージを Visual Studio 2019 から実行したときに「Integration Services evaluation period has expired. The package can only be executed in debug mode.」と表示され、テストが止まってしまうことがあります。本記事では、このエラーの正体と原因、そして開発用 PC で安全かつライセンス的に正しい SSIS 実行環境を整える具体的な手順を、SQL Server 2017+Visual Studio 2019 環境を例にして詳しく解説します。

目次

SSIS「Integration Services evaluation period has expired」エラーの症状

まずは問題のメッセージを再確認します。Visual Studio 2019 で SSIS プロジェクトを開き、パッケージを修正したあとに実行すると次のような警告が表示されます。

Integration Services evaluation period has expired.
The package can only be executed in debug mode.

日本語でざっくり言うと「Integration Services の評価期間が切れたので、デバッグ実行だけしかできません」という意味です。

よくある状況としては、次のような構成です。

  • 開発用 PC:Windows 10 / 11 + Visual Studio 2019 + SSIS 拡張機能(SQL Server Integration Services Projects)
  • サーバー:SQL Server 2017 Enterprise(正規ライセンス)+ SSIS カタログ(SSISDB)
  • 現象:PC 上で SSIS パッケージを「通常実行」しようとするとエラーが出るが、「開始(デバッグ)」なら動く

サーバー側の SQL Server は正規ライセンスなのに、なぜか開発 PC で評価版切れ扱いになる…というのがこのエラーのややこしいポイントです。

原因:開発 PC の SSIS ランタイムが評価版のまま期限切れ

このエラーの本当の原因は、開発 PC にインストールされている SSIS ランタイム(Integration Services 実行環境)が評価版のまま有効期限を過ぎている ことです。

ここで押さえておきたいポイントは次の 3 つです。

  • Visual Studio の SSIS プロジェクト拡張機能は「設計ツール」
    これは無償で使えますが、パッケージの 実行ライセンス とは別物です。
  • パッケージの「通常実行」には SSIS ランタイムが必要
    dtexec や SQL Server Agent、Visual Studio からの非デバッグ実行などは、ローカルにインストールされた SSIS ランタイムを使います。
  • サーバーの SQL Server ライセンス ≠ 開発 PC の SSIS ライセンス
    サーバー側が Enterprise であっても、そのライセンスが自動的に開発 PC に適用されるわけではありません。

評価版の SQL Server(もしくは SSIS コンポーネント)を開発 PC に入れて SSIS を試していた場合、その評価期間が切れたタイミングでこのエラーが発生します。

なぜ「デバッグ実行だけ」動くのか

メッセージにもある通り、評価期間が切れても「デバッグ実行」は許可されています。これは Visual Studio が内部的に SSIS ランタイムを特別なモードで呼び出しているためで、

  • デバッグ実行:開発時限定の特殊な実行(ブレークポイント、変数ウォッチ等を利用)
  • 通常実行:本番に近い実行方式(DTExec、SQL Server Agent などと同等の扱い)

という扱いの違いがあるためです。本番と同じ条件でテストしたい場合は、通常実行が必要なので、ここをどう解消するかがポイントになります。

前提整理:SSIS の設計と実行、ライセンスの関係

解決策に入る前に、SSIS の「設計」「実行」「ライセンス」の関係をざっくり整理しておきます。

役割代表的なコンポーネント用途ライセンス上の位置づけ
設計Visual Studio + SSIS プロジェクト拡張パッケージの開発、編集、デバッグツール自体は無償。実行ライセンスとは別
ローカル実行SSIS ランタイム(Integration Services)、DTExecPC 上でのテスト実行、検証SQL Server Developer / Standard / Enterprise 等のライセンスが必要
サーバー実行SQL Server(SSISDB、SQL Server Agent)本番・検証環境でのパッケージ実行サーバー側 SQL Server のライセンスに従う

さらに、SQL Server のエディションごとの位置づけも押さえておきましょう。

エディション料金用途SSIS 実行
Evaluation無償(期間限定)評価、検証期間終了後は今回のような制限がかかる
Developer無償開発・テスト専用(本番利用不可)Enterprise 相当の全機能を利用可能
Standard / Enterprise有償本番環境ライセンスに応じて SSIS を含む機能を使用可能

開発 PC で「正しく」SSIS を実行したい場合、Developer エディションを入れるか、製品版(Standard / Enterprise)のライセンスを割り当てる必要があります。

解決策の全体像:優先順位と選び方

よく使われる解決パターンを優先度順に並べると次のようになります。

優先度解決策特徴向いているケース
高Developer エディションを導入無償でローカル実行が可能。本番利用不可開発 PC で SSIS を頻繁に実行してテストしたい
中製品版キーでエディションを正規化既存のライセンスを使って評価版から昇格開発用にも Standard / Enterprise ライセンスを割り当てられる
中サーバー側でのみ実行してテストPC には SSIS ランタイム不要。サーバーに集約開発 PC に SQL Server を入れたくない、あるいはポリシー上禁止
補助評価版のクリーンアップと動作確認環境を整理し、バージョンや 32/64bit の食い違いを解消上記いずれの方法を取る場合でも実施推奨

以下では、それぞれの方法をもう少し具体的な手順レベルで解説します。

解決策 1:Developer エディションでローカル SSIS を正規化(推奨)

最もおすすめなのが、開発 PC に SQL Server Developer エディション(2017 以上)をインストールし、Integration Services を有効にする 方法です。開発・検証目的に限れば無償で使え、機能的には Enterprise と同等なので、SSIS の開発には最適です。

Step 1:現在の SSIS / SQL Server の状態を確認

まず、開発 PC にどのバージョン・エディションの SQL Server / SSIS が入っているかを確認します。

  1. 「アプリと機能」(または「プログラムと機能」)を開く
  2. 「Microsoft SQL Server 2017」や「Integration Services」等の名前を探す
  3. エディション名(Evaluation / Developer / Standard / Enterprise など)をメモしておく

コマンドラインからも確認できます。

"C:\Program Files\Microsoft SQL Server\140\DTS\Binn\DTExec.exe" /version

出力に Evaluation と表示されていれば、評価版ランタイムが使われている状態です。見つからない場合は、インストール自体がされていないか、別バージョンの SQL Server が使われている可能性があります。

Step 2:評価版コンポーネントをアンインストール or アップグレード

すでに評価版の SQL Server / SSIS をインストールしている場合は、次のどちらかを選びます。

  • アンインストールしてから Developer を新規インストール
  • セットアップの「エディションのアップグレード」で Evaluation → Developer に切り替え

環境をシンプルに保ちたい場合は、アンインストールして入れ直す方がトラブルは少なくなります。

Step 3:Developer エディションをインストール(Integration Services を有効化)

SQL Server のセットアップを起動し、Developer エディションを選択してインストールします。その際、機能の選択画面で「Integration Services」を忘れずにチェックします。

  • データベースエンジンは必須ではありませんが、ローカルテスト用に入れておくと便利です
  • インスタンスはデフォルト(MSSQLSERVER)でも名前付きインスタンスでも構いません

インストール完了後、再度 DTExec /version を実行して、エディションが Developer になっていることを確認します。

Step 4:Visual Studio 側の設定確認

SSIS プロジェクトが Developer エディションの SSIS ランタイムに対して正しくビルドされるよう、Visual Studio 側の設定も確認しておきます。

  • プロジェクト プロパティ → Configuration Properties → General → TargetServerVersion
    SQL Server 2017 をターゲットにする場合は SQL Server 2017 を選択します。
  • Project → Properties → Debugging → Run64BitRuntime
    通常は True(64bit) で問題ありませんが、32bit のドライバーしかない場合は False にして 32bit で実行します。

ここまで設定すれば、Visual Studio からの「開始(デバッグ)」だけでなく、「パッケージの実行」や dtexec コマンドによる通常実行も、評価版エラーなしで動作するようになります。

解決策 2:製品版キーでエディションを正規化する

もし組織として Standard / Enterprise などのライセンスをすでに保有しており、開発用 PC にもライセンスを割り当てられる場合は、製品版キーを使って評価版や Developer からエディションを切り替えることもできます。

エディション変更の流れ

  1. SQL Server セットアップを起動
  2. 「メンテナンス」 または 「インストール」 メニューから 「エディションのアップグレード」 を選択
  3. 対象のインスタンスを選び、製品版のプロダクトキーを入力
  4. ライセンス条項に同意してウィザードを進める

アップグレード後に DTExec /version でエディションが変わっていることを確認します。

ただし、本番用ライセンスを安易に開発 PC に割り振ると、ライセンス監査の観点で問題になる場合があります。原則として、開発目的には Developer エディションを使う方が安全です。

解決策 3:ローカルではなくサーバー側で実行してテストする

「開発 PC には SQL Server をインストールしたくない」あるいは「社内ポリシーで禁止されている」という場合は、開発 PC はあくまで 設計専用にし、サーバー側でパッケージを実行してテストする方法が現実的です。

手順の概略

サーバー側で実行する基本的な流れは次の通りです。

  1. Visual Studio で SSIS パッケージを開発
  2. 「ビルド」して .ispac ファイルを生成
  3. SSIS カタログ(SSISDB)にデプロイ
  4. SQL Server Agent ジョブや catalog.start_execution などで実行

この方法では、実行に使われるランタイムはすべてサーバー側の SQL Server になるため、開発 PC 側に SSIS ランタイムのライセンスは不要です。

Visual Studio から直接 SSISDB にデプロイする例

  1. ソリューションエクスプローラーでプロジェクトを右クリックし、「配置」を選択
  2. サーバー名、SSIS カタログのパス(例:SSISDB\プロジェクトフォルダー)を指定してウィザードを進める
  3. デプロイ完了後、SQL Server Management Studio から SSISDB を確認

その後は、

  • SSISDB のプロジェクト / パッケージを右クリックして「パッケージの実行」
  • SQL Server Agent でジョブを作成し、「SQL Server Integration Services カタログ」「SSIS パッケージ」を指定
  • T-SQL の catalog.create_execution / catalog.start_execution を用いた自動化

といった方法で実行できます。

この方法のメリット・デメリット

項目メリットデメリット
ライセンス開発 PC 側に SSIS ランタイム不要サーバー台数分のライセンスは別途必要
セキュリティデータはサーバー内で完結しやすい開発者にサーバーへの接続権限が必要
利便性本番に非常に近い条件でテストできる簡単なテストでも毎回デプロイが必要

開発の初期段階では Developer エディションでローカル実行、リリース前の最終テストはサーバー実行、といった使い分けが現場ではよく採用されます。

解決策 4:クリーンアップと動作確認のチェックリスト

どの解決策を選ぶにしても、環境まわりを一度整理しておくと、後々のトラブルを防ぎやすくなります。チェックポイントをまとめておきます。

インストール済みコンポーネントの整理

  • 「アプリと機能」で、不要になった評価版の SQL Server / SSIS コンポーネントを削除
  • 古いバージョン(例:SQL Server 2012 / 2014)の SSIS が残っていないか確認
  • 複数バージョンが必要な場合は、どのプロジェクトがどのバージョンを使うかを整理する

バージョン・エディションの確認

コマンドラインからバージョンとエディションを確認します。

DTExec /version

ここで表示される情報と、Visual Studio の TargetServerVersion が一致しているかを確認します。

32bit / 64bit 実行の確認

SSIS は 32bit / 64bit どちらでも動作しますが、利用するドライバーによっては片方にしか対応していない場合があります。

  • ODBC / OLE DB ドライバーがどちらのビット数でインストールされているかを確認
  • Visual Studio プロジェクトの Run64BitRuntime 設定をドライバーに合わせて変更

例えば、32bit 版の Excel ドライバーしかない状態で 64bit 実行すると接続エラーとなるため、その場合は Run64BitRuntime を False にする必要があります。

よくある勘違い・ハマりポイント

「Visual Studio の SSIS 拡張が入っていれば実行できる」は誤解

Visual Studio の「SQL Server Integration Services Projects」拡張はあくまで 設計用のアドイン です。これだけ入れても SSIS の実行環境(ランタイム)はインストールされません。

そのため、

  • プロジェクトの作成、編集、ビルド、デバッグはできる
  • しかし、ローカルでの「通常実行」は SSIS ランタイムが必要

という状態になります。「拡張は入れているのに、なぜ評価版切れになるのか?」という疑問の多くは、この区別が曖昧なことが原因です。

サーバーのライセンスはクライアント PC には自動的に適用されない

サーバー側に Enterprise エディションが入っていても、そのライセンスで開発 PC のローカル SSIS 実行をカバーできるわけではありません。サーバーとクライアント PC のライセンスは別々に考える必要があります。

開発・テスト用途であれば Developer エディションを使うのが最も無難です。

ターゲットバージョンの不一致

Visual Studio の SSIS プロジェクトには TargetServerVersion という設定があります。ここが SQL Server 2019 なのに、開発 PC に入っている SSIS ランタイムが 2017 しかない、といった状態だとビルドや実行で問題が出ることがあります。

基本的には、

  • サーバー側の SQL Server バージョン
  • 開発 PC 側の SSIS ランタイムのバージョン
  • Visual Studio プロジェクトの TargetServerVersion

の 3 つをそろえる(あるいは互換性のある組み合わせにする)ことが重要です。

開発~本番までの SSIS 運用パターン例

最後に、今回のようなトラブルを避けつつ、現場でよく採用される SSIS の運用パターンを簡単に紹介しておきます。

パターン A:開発 PC でローカル実行 → サーバーで本番実行

  • 開発 PC:SQL Server Developer + Integration Services + Visual Studio 2019
  • サーバー:SQL Server 2017 Enterprise + SSISDB + SQL Server Agent

この場合、開発者はローカルで自由にテストし、本番リリース時に .ispac をサーバーにデプロイします。多くの開発現場で採用されているスタイルです。

パターン B:サーバー側にすべて集約

  • 開発 PC:Visual Studio 2019 + SSIS 拡張のみ
  • サーバー:SQL Server(開発・検証・本番環境)に SSISDB を用意

この場合、開発者は PC 上ではデバッグまでにとどめ、実際の実行テストはすべてサーバー側で行います。セキュリティポリシーが厳しい環境や、データをうかつに開発 PC に落としたくない場合に向いています。

パターン C:テスト用に軽量なローカル SQL Server を用意

開発 PC には Developer エディションで最小限の構成だけをインストールし、本番と同じ SSISDB 構成はサーバー側のみで運用するパターンです。

  • ローカル:簡易テスト用、軽量・高速に試す目的
  • サーバー:本番に近い構成での最終確認

このように役割を分けておくと、評価版の期限切れやバージョン違いによるトラブルを避けやすくなります。

まとめ:評価版切れを機に SSIS 環境を整理しよう

SSIS の「Integration Services evaluation period has expired. The package can only be executed in debug mode.」というメッセージは、

  • 開発 PC にインストールされた SSIS ランタイムが評価版のまま期限切れ
  • Visual Studio の SSIS 拡張はあくまで設計ツール であり、実行ライセンスとは別

という状況を示しています。

解決するには、

  • Developer エディションを導入してローカル SSIS 実行環境を正規化する
  • 必要に応じて製品版キーで評価版を正規版にアップグレードする
  • ローカルで実行せず、サーバー側にデプロイして実行する運用に切り替える

といった選択肢があります。あわせて、不要な評価版コンポーネントの削除やバージョン・ビット数の整理を行っておくと、今後のトラブルも減らせます。

一言でまとめると、「開発 PC の SSIS が評価版切れなので、Developer エディションなどで正規の SSIS ランタイムを用意するか、実行をサーバー側に集約する」ことが解決のポイントです。これを機に、開発~本番までを見据えた SSIS の運用設計を見直してみてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次