MSBuild Copy失败,出现奇怪的错误消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSBuild Copy失败,出现奇怪的错误消息相关的知识,希望对你有一定的参考价值。
我完全陷入困境,需要你的帮助)))
MSVS跨平台工具链包含一个名为android.Common.targets的msbuild脚本,它有一个名为CopyAntPackageContentToOutput的目标,而且当这个脚本执行时(在Marmalade SDK本机调试版本期间) - 复制任务无法移动一些。 jar文件到中间目录并打印:
Task Parameter:
1> SourceFiles=
1> c:codeprojectsdevelop+jfmarmaladeextensions
sfirebasesdklibsandroidfirebase-messaging-cppclasses.jar
1> CopyToOutputDirectory=Always
1> Link=libsclasses.jar
1> OriginalItemSpec=c:codeprojectsdevelop+jfmarmaladeextensions
sfirebasesdklibsandroidfirebase-messaging-cppclasses.jar
1> TargetPath=libsclasses.jar
1> c:codeprojectsdevelop+jfmarmaladeextensionsandroidsupportsdksupport-core-uiclasses.jar
1> CopyToOutputDirectory=Always
1> Link=libsclasses.jar
1> OriginalItemSpec=c:codeprojectsdevelop+jfmarmaladeextensionsandroidsupportsdksupport-core-uiclasses.jar
1> TargetPath=libsclasses.jar
(......等等,不得不削减日志)
然后是错误消息:
1>C:Program Files (x86)MSBuildMicrosoftMDDAndroidV140Android.Common.targets(344,5): error MSB3094: "DestinationFiles" refers to 1 item(s), and "SourceFiles" refers to 39 item(s). They must have the same number of items.
我得到msbuild可能失败,因为我有多个.jar文件同名classes.jar,但如何在不重命名文件的情况下解决这个问题?
但是如何在不重命名文件的情况下修复它?
似乎问题是SourceFiles
包含多个文件但复制到一个目的地。
由于您不想重命名源文件,因此可以尝试使用递归副本修改复制目标CopyAntPackageContentToOutput
,而不是复制到同一文件夹:
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFiles="@(MySourceFiles->'c:MyDestinationTree\%(RecursiveDir)%(Filename)%(Extension)')"
/>
</Target>
资料来源:https://msdn.microsoft.com/en-us/library/3e54c37h.aspx
有关更多信息,请参阅similar issue。
希望这可以帮助。
以上是关于MSBuild Copy失败,出现奇怪的错误消息的主要内容,如果未能解决你的问题,请参考以下文章
使用 MSBuild 发布 VSTO 加载项会出现错误:“SignFile”任务意外失败。 System.ArgumentNullException:值不能为空
OmniSharp.MSBuild.ProjectManager无法在Linux上加载项目
TeamCity/.sqlproj 通过 MSBuild 构建——失败