20

コンパイル時にLC.EXEのエラーが表示されます

The specified task executable "LC.exe" could not be run. The filename or extension is too long

このエラーは、単体テスト プロジェクトをコンパイルするときに発生します。私が見たグーグルのトリックのうち、何もうまくいきませんでした。

  • クライアント プロファイルではなく、ターゲット フレームワーク = ".NET Framework 4" に設定されています。

これは今日から始まりました。ソース管理の歴史にはほとんど何もありません。変更はすべてAssemblyInfo.cs、サードパーティのユーティリティがバージョン番号をインクリメントする場所に関係しています。

UPDATE
出力ウィンドウを見ると、LC.EXEへのコマンドライン呼び出しが巨大です

コンパイルLicxFiles:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\LC.exe /target:BuildAll.Tests.dll /complist:Properties\licenses.licx /outdir:obj\Debug\ /i:C:\

何百もの/iパラメータがあります...

4

7 に答える 7

2

同じ問題がありました。Lc.exe の場合、コマンド ラインが生成されますが、これは約 32k 文字までに制限されています。このコマンドでは、通常、すべての参照がフルパスで書き込まれます。

そのため、多くの参照がある場合、問題が発生する可能性があります。

できることがいくつかあります: - 未使用の参照を削除します - 間接的な依存関係を参照していないことを確認してください。代わりに、アセンブリに対して定義できるヒント パスを使用してください。- 参照が配置されているパスを短縮します - 仮想ドライブを作成してそこに参照を配置し、短縮された可能な参照パスを取得できます (例: Z:\my.dll)

于 2013-03-04T13:52:04.583 に答える
0

ファイル LC.exe に問題がありました。すべては、使用したコンポーネントがネットワーク ドライブ (G :) にあり、その位置から実行可能ファイルをコンパイルできなかったことが原因でした。最終的に、インターネットオプションで信頼できるイントラネットサイト間のネットワークドライブのIPアドレスを追加することで解決しました.

于 2015-01-20T16:03:17.690 に答える
0

今日問題が発生しましたが、参照のパスをより短いパスに変更すると解決しました。たとえば、最初は に入れましたmydocuments\user\...\...\..。しかし、パスを に変更するとc:\dlls\、魅力的に機能しました。それが役立つことを願っています。

于 2013-03-05T23:34:12.640 に答える
0

LC.exe に関する問題を解決するために、このブログ投稿に記載されているコマンド ライン ユーティリティ「Subst」を使用しました。

  1. ビルドの Verbosity を Normal 以上に設定します。
  2. [出力] ウィンドウで、LC タスクが実行されている行を調べます。他のバイナリへのパスを持つ多くの /i パラメータがあることに注意してください。
  3. 「Subst」を使用してパスを短縮し、「LC.exe」に渡されるすべてのパラメーターの合計の長さを減らすのに役立つ 1 つ以上のパスを見つけます。
  4. 次に、Visual Studio で問題のプロジェクトのプロパティ ウィンドウを開き、[参照] タブを選択して、Subst で定義した新しいドライブを追加します。

プロジェクトをビルドします。

Subst は再起動後は保持されないことに注意してください。

于 2017-06-07T01:59:19.613 に答える