Ошибка копирования MSBuild со странным сообщением об ошибке

Я застрял полностью и нужна ваша помощь)))

Кроссплатформенный набор инструментов MSVS содержит скрипт msbuild с именем Android.Common.targets, у которого есть цель с именем 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, но как мне исправить это, не переименовывая файлы?


person mr.dog    schedule 02.03.2018    source источник


Ответы (1)


но как мне это исправить, не переименовывая файлы?

Кажется, проблема в том, что 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

Дополнительную информацию см. В аналогичной проблеме.

Надеюсь это поможет.

person Leo Liu-MSFT    schedule 05.03.2018