サポート&サービス

Home > サポート&サービス > テクニカルサポート > ナレッジベース

テクニカルサポート

製品に関する技術的なサービスを提供しています。製品別の技術情報(ナレッジベース)および、対応環境情報をご覧いただけます。また、E-mailによるテクニカルサポートのお申し込みもこちらで受け付けています。

ComponentOne サブスクリプション製品をご購入された方

サブスクリプションにて、ComponentOne製品(ComponentOne Studio、Wijmo、Xuni)をご購入された方は、下記のComponentOne Studioサイトからユーザー登録をお願いいたします。

ComponentOne サブスクリプション製品のユーザー登録を行う

ナレッジベース

「"LC.exe" はコード -1 を伴って終了しました("LC.exe" exited with code -1)」エラーのトラブルシューティング
文書番号 : 32146     文書種別 : HowTo
登録日 : 2012/03/16     最終更新日 : 2014/03/28
文書を印刷する
対象製品
.NET 製品共通
詳細
プロジェクトのビルド時に「"LC.exe" はコード -1 を伴って終了しました。("LC.exe" exited with code -1)」というエラーが発生する場合、いくつかの原因が考えられます。以下の内容をご確認のうえ、プロジェクトまたはソリューションを「リビルド」してください。


 注意事項
  • 「デバッグ実行」や「ビルド」では、アプリケーションにライセンスが組み込まれない場合があります。必ず「リビルド」を実行してください。
  • 「LC.exe」は.NET Framework SDKに収録されているライセンスコンパイラです。

1. licenses.licxの内容が不正
プロジェクトのlicenses.licxファイルが、下記のように不正な内容のとき、本エラーが発生する場合があります。
  • プロジェクト内で使用していないコントロールのライセンス情報が記載されている
  • ライセンス情報の記載内容(名前空間やコントロール名、バージョン番号など)に誤りがある
    ※ 旧バージョンからの移行時や、サービスパックの適用時には、licenses.licxファイルの修正が必要になる場合があります。
「ソリューション エクスプローラ」ウィンドウ上で「すべてのファイルを表示」をONに設定し、「My Project」や「Properties」フォルダにあるlicenses.licxファイルを開いて、内容を修正してください。licenses.licxファイルに記載すべきライセンス情報については、各製品に付属の製品ヘルプを参照してください。製品ヘルプは、スタートメニューなどから表示できます。
「ASP.NET Webサイト」形式のプロジェクトの場合、修正後のlicenses.licxファイルを元に、App_Licenses.dllファイルを再作成してください。
 注意事項

2. binフォルダ、objフォルダに古い情報が残っている
プロジェクトフォルダ下の「bin」および「obj」フォルダにある既存ファイルの影響により、ビルドするアプリケーションに正しくライセンスが組み込まれない場合があります。
ビルドの前に「bin」および「obj」フォルダを削除してください。


3. 「対象のフレームワーク」設定が不正
プロジェクトの「対象のフレームワーク」が適切に設定されていないとき、本エラーが発生する場合があります。
たとえば、.NET Framework 2.0に対応していない製品を使用したプロジェクトで、「対象のフレームワーク」が「.NET Framework 2.0」に設定されている場合、本エラーが発生します。

「対象のフレームワーク」の設定を確認してください。本設定の詳細については、MSDNライブラリを参照してください。

方法: .NET Framework のバージョンをターゲットにする

http://msdn.microsoft.com/ja-jp/library/bb398202.aspx

各製品が対応するフレームワークについては、製品に付属のリリースノートから「必要システム」を参照してください。リリースノートのHTMLファイルは製品をインストールしたフォルダ内にあり、スタートメニューなどからも表示できます。


4. アセンブリのDLLファイルにアクセスブロックの設定がされている
プロジェクト内で参照しているアセンブリのDLLファイルに、WindowsのZone IDによるアクセスブロック設定がされている場合、本エラーが発生します。


DLLファイルのプロパティ画面上に表示されるメッセージ:「セキュリティ: このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」

通常の開発環境において、製品のインストーラによってインストールされたDLLファイルにこの設定がされることはありませんが、たとえば以下のような方法でDLLファイルを入れ替えた場合に設定される可能性があります。
  • メール添付やWebサイト経由で提供されたDLLファイル(HotFix版など)を使用している
  • 別のマシン(ファイルサーバーなど)からコピーしたDLLファイルを使用している
エクスプローラ上でDLLファイルを右クリックし、[プロパティ]を選択してください。プロパティ画面に[ブロックの解除]ボタンが表示される場合は、アクセスブロックの設定がされています。[ブロックの解除]ボタンをクリックし、設定を解除してください。もしくは、DLLファイルを含んだzipファイルを展開(解凍)する前に、zipファイルのプロパティ画面で同様の操作を行ってください。


5. 64ビット版のLC.exeが使用されている
LC.exeは32ビット版と64ビット版の2種類が存在します。弊社.NET製品のほとんどはアセンブリDLLが32ビット環境用と64ビット環境用とで共通になっていますが、この場合は32ビット版のLC.exeを使用する必要があります。64ビット版のLC.exeでプロジェクトをビルドすると、本エラーが発生します。

64ビット版のLC.exeが使用されるいくつかのケースについて、以下に説明します。

(1) 64ビット版OSで.NET Framework 4.5をインストールしている
以下の条件がすべて揃っている場合、64ビット版のLC.exeが使用されます。
  • 開発環境のOSが64ビット版(x64)である
  • 開発環境に.NET Framework 4.5がインストールされている
  • Visual Studio 2010または2012を使用している
  • ビルドのプラットフォームターゲットに「x64」を設定している
.NET Framework 4.5がインストールされていない環境では、devenv.exe(Visual StudioのIDE)が32ビット版のLC.exeを使用します。これに対し、.NET Framework 4.5がインストールされている環境でターゲットフレームワークに「x64」を設定している場合は、LC.exeはdevenv.exeからではなく、64ビット版のMSBuild.exeを経由して実行されるため、64ビット版のLC.exeが使用されてしまい、ビルド時にエラーが発生します。

本現象は、マイクロソフト社のサポート技術情報で公開されている、以下の問題に起因しています。

.NET Framework 4.5 のインストールにより Visual Studio 2010 が起動するビルドツールが 64 bit 版に変化する場合がある

http://support.microsoft.com/kb/2783939/ja

本現象を回避するには、上記ページの「解決方法」に記載されているように、環境変数またはプロジェクトファイル (.vbprojまたは.csproj) において、「DisableOutOfProcTaskHost」の値に「1」に設定してください。

(2) 64ビット版OSでVisual Studio 2005を使用している
64ビット版(x64)OS上でVisual Studio 2005を使用している場合、マイクロソフト社のサポート技術情報で公開されている、以下の問題に該当する可能性があります。

ライセンス コンパイラ (Lc.exe) が例外をスローするときにします。ライセンス済みのコンポーネントは、64 ビットのオペレーティング システムを実行しているコンピューターで NET Framework 2.0 アプリケーションを使用します。

http://support.microsoft.com/kb/913961/ja

この場合は上記ページの「解決方法」で回避できます。具体的な手順は以下のとおりです。

(1) Visual Studio 2005を「管理者として実行」で起動します。
(2) 起動したVisual Studio 2005からアプリケーションのプロジェクトを開きます。
(3) プロジェクトのプロパティ画面を表示し、「ビルドイベント」を下記の内容に設定します(Visual Basicの場合、[コンパイル]タブから[ビルド イベント]ボタンをクリック。C#の場合、[ビルド イベント]タブをクリック)。

・ビルド前に実行するコマンドライン:
 %SYSTEMROOT%¥Microsoft.NET¥Framework64¥v2.0.50727¥ldr64.exe setwow
・ビルド後に実行するコマンドライン:
 %SYSTEMROOT%¥Microsoft.NET¥Framework64¥v2.0.50727¥ldr64.exe set64
・ビルド後のコマンドラインの実行条件:
 ビルドが成功したとき

(3) コマンドラインからプロジェクトをビルドしている
Visual Studio上からではなく、バッチ処理などでコマンドラインからプロジェクトをビルドしている場合は、32ビット版のMSBuild.exeを実行してください。64ビット版のMSBuild.exeを実行した場合、64ビット版のLC.exeが使用されます。
なお、.NET Framework 4.0の場合、MSBuild.exeは以下のフォルダにあります。

32ビット版:%SYSTEMROOT%¥Microsoft.NET¥Framework¥v4.0.30319¥MSBuild.exe
64ビット版:%SYSTEMROOT%¥Microsoft.NET¥Framework64¥v4.0.30319¥MSBuild.exe

(4) TFSで「MSBuild プラットフォーム」を「X86」以外に設定している
TFS(Team Foundation Server)からプロジェクトをビルドしている場合、設定によっては64ビット版のLC.exeが使用されます。

[詳細設定]のビルドプロセスパラメーターの設定で、[MSBuild プラットフォーム]が「Auto」または「X64」に設定されている場合は、「X86」に変更してください。本設定の詳細については、MSDNライブラリを参照してください。

アップグレード テンプレートを使用してビルドを定義する

http://msdn.microsoft.com/ja-jp/library/dd647553.aspx

関連情報
キーワード
MSB6006

この情報は、疑問・問題解決のお役に立ちましたか?

    


こちらに入力されたご質問には回答できませんので、製品に関するお問い合わせは、別途「E-mailサポート」をご利用ください。


※ 個人情報保護のため、個人情報の記入はご遠慮ください。

このページの先頭へ