2015-08-10 2 views
3

я имея вид абсурдной ситуации, и я буду рад услышать, как именно вы, ребята, его обработки:Visual Studio 2015 гибридное приложение - получение «EPERM, операция не разрешена»

У меня есть гибридный проект App, Visual Studio 2015 Инструменты Кордовы. Внутри него, в папке «res» у меня есть ресурсы приложения. Весь проект, включая ресурсы, находится под контролем источника (TFS).

Во время сборки файлы ресурсов копируются в папку «.. \ platform \ android \ res».

Первый раз, когда папка пуста, это удалось - файлы скопированы как есть (например, только для чтения, так как они находятся под контролем источника). После этого во время следующей сборки он пытается перезаписать эти файлы только для чтения и, как ожидалось, не смог, показывая эту информативную ошибку: «EPERM, операция не разрешена» ресурс полный путь.

Я не получаю он. Ресурсы должны быть под контролем источника, так что я предполагаю, что 99,99% разработчиков будет получить такую ​​же проблему, как и я.

что я пропустил?

Благодарности

+0

Вы не можете просто проверить файлы? – adelphus

+0

@adelphus - кажется странным просить каждого разработчика в (большой) организации проверить определенные файлы. Что делать, если я хотел бы обновить ресурсы? Теоретически я могу подготовить событие pre-build для удаления/удаления только для чтения из существующих файлов, но все это выглядит очень грязным. Я хотел бы знать, что рекомендуется для этой ситуации. – Illidan

+0

Несомненно, TFS не настолько отстает, что не позволяет разработчикам совершать файлы, которые другие проверили? Я бы сказал, что разработчикам рекомендуется проверять файлы в проектах, которые они работают на локальном компьютере, и просто возвращать неизменные файлы, когда они закончены. – adelphus

ответ

5

Проверьте, если папка только для чтения , если это - снимите флажок свойства «Только для чтения» в папке и выберите «Применить c помещается в эту папку, вложенные папки и файлы «

Я получаю то же исключение, когда использую TFS с Cordova.

Когда я фиксация папка становится только для чтения, это очень раздражает ошибка ...

+1

Вы когда-нибудь находили способ преодолеть это при построении на TFS? – Bernis

12

Я думал, что перезвон здесь с тем, что я сделал. Проблема в том, что «платформы» не проверяются на источник, но по-прежнему помечены как «Только для чтения». Поэтому в первый раз, когда он строит его, он работает, и последующие сборки завершаются неудачей, если вы не сделаете чистое решение.

Что я сделал - я удаляю флаг «Только для чтения» перед сборкой.

Щелкните правой кнопкой мыши проект, выгрузите проект. Щелкните правой кнопкой мыши, отредактируйте файл проекта. В верхней части, добавить цель с именем BeforeBuild, например:

<Project ToolsVersion="14.0" DefaultTargets="BeforeBuild;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

Затем в нижней части файла, в котором цели идут вы можете добавить цель, как это:

<Target Name="BeforeBuild"> 
    <Exec Command="attrib -R &quot;$(SolutionDir)YourProjectName\platforms\*.*&quot; /S" IgnoreExitCode="true" /> 
</Target> 
+0

Я пытаюсь сделать это с TFS, но не повезло. Любые идеи о том, как следовать одной и той же схеме, но для сборки TFS? – Bernis

+0

Этот проект также основан на сборке TFS. У нас есть шаблон сборки, который позволяет полностью очистить (удалить) исходный каталог, прежде чем он захватит последний источник. – tlewis

+0

Мы тоже это делаем. Похоже, у меня должна быть другая проблема :( – Bernis

0

Для меня, каталог что указанное сообщение об ошибке просто отсутствует. Такая же среда IDE, приложение такого же типа.

Он ищет \ GitHub ... \ myProjectName \ платформы \ Windows \ WWW

я вручную добавил реж (WWW) назад и проект работал отлично. IDE удаляет этот каталог в начале сборки, а затем исключает исключение EPERM. Конечно, это похоже на ошибку.

Смежные вопросы