我完全陷入困境并需要你的帮助)))
MSVS跨平台工具链包含一个名为 Android.Common.targets 的msbuild脚本,其中有一个名为 CopyAntPackageContentToOutput 的目标,事情就是当此脚本执行时(在 Marmalade SDK 本机调试版本中) - 复制任务无法将大量 .jar 文件移动到中间目录并打印:
Task Parameter:
1> SourceFiles=
1> c:\code\projects\develop+jf\marmalade\extensions\nsfirebase\sdk\libs\android\firebase-messaging-cpp\classes.jar
1> CopyToOutputDirectory=Always
1> Link=libs\classes.jar
1> OriginalItemSpec=c:\code\projects\develop+jf\marmalade\extensions\nsfirebase\sdk\libs\android\firebase-messaging-cpp\classes.jar
1> TargetPath=libs\classes.jar
1> c:\code\projects\develop+jf\marmalade\extensions\androidsupport\sdk\support-core-ui\classes.jar
1> CopyToOutputDirectory=Always
1> Link=libs\classes.jar
1> OriginalItemSpec=c:\code\projects\develop+jf\marmalade\extensions\androidsupport\sdk\support-core-ui\classes.jar
1> TargetPath=libs\classes.jar
(......等等,不得不削减日志)
然后是错误消息:
1>C:\Program Files (x86)\MSBuild\Microsoft\MDD\Android\V140\Android.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 ,但是如何在不重命名文件的情况下解决这个问题?
答案 0 :(得分:0)
但如何在不重命名文件的情况下解决这个问题?
问题似乎是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。
希望这有帮助。