我正在使用VS 2012开发SharePoint 2013解决方案,该解决方案有一个licx文件。我收到一个编译时错误和警告。
错误:指定的任务可执行文件"LC.exe"无法运行。文件名或扩展名太长
警告:"LC"任务的命令行太长。超过32000个字符的命令行可能会失败。尝试通过将对"LC"的调用分解为多个调用来减少命令行的长度,每个调用的参数更少。
我已经尝试过lc.exe.config具有<startup useLegacyV2RuntimeActivationPolicy="true">
我还尝试将解决方案移动到"C:\",它位于Projects文件夹的早期位置。
我仍然无法解决此错误。
有MS支持的解决方法:
生成项目时,从项目中删除许可证文件每次你得到这个错误,只需删除许可证文件
https://connect.microsoft.com/VisualStudio/feedback/details/779433/lc-exe-task-command-line-too-long
您可以通过创建指向所使用的特定.NET版本的快捷方式(在本例中为4.5.2)来节省大量路径长度。以下是步骤;
- 以管理员身份运行命令行
- 转到命令行中的C:\
- mklink/J net452"C:\Program Files(x86)\Reference Assemblys\Microsoft\Framework\.NETFramework\v4.5.2"
- 转到VisualStudio
- 打开项目属性
- 查看"参照"选项卡
- 单击"参考路径"按钮并添加路径"C:\net452"
- 重建项目
删除licenses.licx文件不是一个解决方案。如果您使用需要许可证的第三方控制,它将在运行时给您带来错误。
LC.exe将参数作为具有完整路径的许可证文件,如果参数太长,则会引发错误。
因此,保持文件名和路径的长度更短,它将编译并工作。
删除许可证文件对我没有帮助。我最终删除了Solution Explorer->Properties组下的"licenses.licx"这确实有助于
根据此次GitHub签入,VS2017中修复了此问题:https://github.com/Microsoft/msbuild/commit/e49717c727c3cab4db466bcb0a5abb624a8156bb我相信这个版本是完整发布的版本是VS2017更新2。