Esta pregunta se hizo hace un tiempo, pero se relaciona con el mismo tipo de problema que estaba teniendo.
El problema:
- Queremos comprobar nuestro código.
- Entonces queremos construir nuestro proyecto.
- Durante nuestra compilación, dependemos de Build Events para mover los archivos, por lo que tenemos los archivos adecuados en su lugar para que se complete el proceso de compilación.
- Cuando nuestro evento de compilación intenta copiar los archivos, obtenemos errores de acceso denegado.
La razón:
- El complemento de Visual Studio de Team Foundation Server cambia el atributo de solo lectura en nuestros archivos a READONLY TRUE cuando revisamos nuestros archivos.
Ejemplo de evento de construcción:
- copiar "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
Arriba, simplemente necesitamos mover un archivo de nuestra Ruta de compilación de destino (las carpetas bin \ debug o bin \ release) a nuestra Carpeta de proyecto. En mi situación, esto fue para poder incluir archivos de proyecto en mi instalador. Mi instalador no los tomó como parte del resultado del proyecto.
La solución: (casi me pateo en la cara cuando me di cuenta de esto)
Evento de nueva construcción:
- attrib -R "$ (ProjectDir) SomeFile.ext"
- copiar "$ (TargetDir) SomeFile.ext" "$ (ProjectDir)"
- attrib + R "$ (ProjectDir) SomeFile.ext"
Todos nos estamos divirtiendo con Build Events, ¿verdad? Arriba simplemente hago 2 cosas, elimino el atributo de solo lectura, ahora los archivos no son de solo lectura. Copie mi archivo como originalmente quería. Luego reemplace el atributo de solo lectura (opcional, supongo) para mantener contentos a Visual Studio y Team Foundations.
Y sí ... todavía me estoy pateando en la cara en este caso.