「"LC.exe" はコード 1 を伴って終了しました」エラーの原因と解決方法3選
📋 目次(クリックで展開)
Visual Studio 開発において、プロジェクトをビルドした際に突然 「“LC.exe” はコード 1 を伴って終了しました」(または英語で “LC.exe exited with code 1”)というエラーが発生し、ビルドが完全に通らなくなるトラブルがあります。
このエラーは、画面に配置しているサードパーティ製の有料コンポーネント(グリッドや帳票ツールなど)のライセンスコンパイルに失敗した際に発生する、.NET 開発におけるエラーの一つです。
特に「PCをリプレイスした」、「プロジェクトを新しくクローンした」、「コンポーネントのバージョンアップを行った」といったタイミングで頻発します。
今回は、このエラーが発生する原因と、開発現場で実際に使われている解決アプローチ3選を解説します。
エラーが発生する原因
このエラーの原因は、プロジェクトの Properties フォルダなどに入っている licenses.licx というテキストファイルです。
このファイルには、プロジェクトで使用している有料コンポーネントのクラス名やバージョン情報、トークンなどが記述されています。Visual Studio はビルド時に LC.exe(ライセンスコンパイラ)というツールを裏で立ち上げ、このファイルを読み込んでライセンス情報をアプリケーションに埋め込もうとします。
しかし、以下のような状況になると LC.exe が指定されたコンポーネント(DLL)を PC 内から見つけられず、エラーコード 1 を出力して異常終了します。
- 以前の古いバージョンの情報が
licenses.licx内に文字として残ったままになっている - 開発 PC に対象(バージョン)のコンポーネント(SDK)が正しくインストールされていない
解決アプローチ3選
環境の状況やプロジェクトの運用ルールに合わせて、以下のいずれかの対策を行うことでエラーを解消できます。
対策1:licenses.licx の中身を「すべて削除して空にする」
最も手軽で、かつ多くのケースで解決する方法です。
- Visual Studio のソリューションエクスプローラーから
licenses.licxを開きます。 - 中に書かれているテキストをすべて選択し、削除して空(0バイト) にします。
- ファイルを上書き保存し、プロジェクトの「リビルド」を実行します。
内部のテキストを空にしても、ファイル自体が存在していれば、Visual Studio はライセンスコンパイルの処理を正常に通過させるため、エラーが消え去ります。
対策2:licenses.licx ファイル自体をプロジェクトから削除する
もし対象のコンポーネントが「ビルド時に licenses.licx ファイルがなくても、PCのインストール情報だけでライセンスを認証できる」仕様のものであれば、ファイル自体を消し去ることで根本解決できます。
licenses.licxファイルを右クリックして「削除」を選択します。- プロジェクトを「リビルド」します。
対策3:プロパティの「ビルドアクション」を「なし」に変更する
ファイルの中身をいじったり削除したりせず、プロジェクトの設定だけで一時的にビルド対象から外したい場合に有効なアプローチです。
- ソリューションエクスプローラーで
licenses.licxを選択します。 - プロパティウィンドウを開き、「ビルドアクション」 の項目を確認します。
- 標準では
Embedded Resource(埋め込まれたリソース)になっている箇所を、None(なし) に変更します。
これにより、コンパイラはこのファイルを完全に無視するようになるため、LC.exe 自体が起動しなくなりエラーを回避できます。
補足説明
ファイルを消しても「勝手に復活する」現象のメカニズム
対策2でファイル自体を削除しても、フォームデザイナーを開いて対象のコンポーネント(コントロール)を画面に新しく配置したり、既存のコントロールを少し動かしたりした拍子に、licenses.licx が自動的に再生成されてエラーが再発することがあります。
これは不具合ではなく、Visual Studio 側で、有料コントロールが画面に配置されたため、ライセンスファイルを自動生成する標準の挙動です。
もしファイルを削除した後に勝手に復活してビルドエラーが再発した場合は、再度「対策1:中身を空にする」か「対策3:ビルドアクションをなしにする」の設定を行い、コンパイラにファイルを無視させる状態を作るのが、実務における安定した対処法になります。
まとめ
今回は、Visual Studio での開発時に生じる「“LC.exe” はコード 1 を伴って終了しました」エラーの対処方法について解説しました。
エラーメッセージが抽象的なため初見では判断しづらいですが、原因が licenses.licx とライセンスコンパイラの不一致であることが分かれば、対処方法も見えてきます。
- エラーの直接の原因は
licenses.licxの記述と開発環境のズレ - 手間のかからない解決は「中身をすべて消して空にする」か「ビルドアクションを “なし” にする」
- コントロールを触ると自動再生成される性質があるため、その際は再度中身を空にする
ビルドエラーで開発がストップしてしまった際のトラブルシューティングとして、ぜひこの記事のステップを試してみてください。
💬 コメント