Blend 使ってデザインしてたら LC.exe のエラーがっ!!
数年前、Yahoo! ブログにこんな記事を書きました。
GrapeCity のコントロールをフォームに張り付けていてビルドすると、たまに
エラー 1 "LC.exe" はコード -1 を伴って終了しました。
というエラーが発生することがあります。特に GrapeCity のコントロールを継承したクラスをフォームで使っていると発生頻度が高くなるようです。これを解決するには、My Project フォルダに生成される licenses.licx をプロジェクトから除外または削除すれば オッケー☆⌒d(´∀`)ノ。
開発環境から licenses.licx を削除するには(VSS使ってる場合)
- ソリューションエクスプローラ-を表示
- ビルドエラーの発生しているプロジェクトを、ソリューションエクスプローラ-で選択し展開
- My Project の直下に licenses.licx がぶら下がっている筈なので、右クリックしてショートカットメニューを表示、「プロジェクトから除外」もしくは「削除」をクリック
- プロジェクトが VSS に登録されているならここで警告が出るが、ここは「ローカルおよびソース管理ストアで項目の削除を行う」を選択し削除してもかまわない
- プロジェクトのリビルドを行う
・・・これでビルドに成功するはずです。
詳しい話は、以下の記事の 「クラス・ライブラリ化したら突然 "評価期限切れ" のメッセージが」 を参照してください。
関連記事: Windows業務アプリケーション開発 Q&A #5
2009/09/11 追記:
GrapeCity のコントロールの場合、リリース版配布時は licenses.licx が必要になる。
上記「エラー 1 "LC.exe" はコード -1 を伴って終了しました。」が発生する場合、
プロジェクトで使われていないコンポーネントが licenses.licx に定義されると発生する。
licenses.licx から使われてないコンポーネントを削除し、リビルドするとOK
関連記事: ビルド時に「"LC.exe" はコード -1 を伴って終了しました。」が発生する場合の対処
これでLC.exe のエラーを目にすることなくなったんですが、先日久々に発生しました。licenses.licx を削除しても
エラー 1 "LC.exe" はコード -1 を伴って終了しました。
が収まらないっ!><
しばらくドツボに嵌りましたが、プロジェクト構成調べてたら、いつの間にかプロジェクト直下に Properties フォルダが作られてて、そこに licenses.licx がっ!!・・・要は、一つのプロジェクトに二つもライセンスファイルが作られてました!!
エラー自体の原因は単純で I 社のコンポーネントをバージョンアップしたため、licenses.licx の記述と整合性が取れなくなっただけなんですが、これだけ VS じゃなく Blend で貼り付けてたため、Properties フォルダ内の licenses.licx に記述されてたのでした。
調べたら、Blend でサードパーティー製のコンポーネント貼り付けると、VB プロジェクトであっても自動的に Properties フォルダ生成して、そこに licenses.licx 生成してしまうみたいです。これ G 社も I 社も関係なく Blend 自体の挙動ですね。
まぁ、C# なら問題ないんでしょうが、VB のWindow を VisualStudio と Blend で並行してデザインしてる場合は要注意です。