2012-10-08 53 views
10

Probablemente haya un problema con el proyecto TFS Visual Studio realizado junto con Typescript.Problemas con TypeScript y TFS

En la compilación tsc no se puede sobrescribir el archivo .js de solo lectura y arroja un error Permiso denegado.

Error 1 Permission denied 
Error 2 The command ""C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0\tsc 
"c:\users\schlicht\documents\visual studio 2012\Projects\TypeScriptHTMLApp1\TypeScriptHTMLApp1\app.ts"" exited with code 1. 

¿Es posible sin comprobar explícitamente los archivos de usar una acumulación con CET?

+1

FYI la versión más reciente de Visual Studio 2013 con la actualización 3 ha solucionado este problema. Tengo un proyecto donde el archivo .js está bajo control de fuente TFS, anidado bajo el archivo .ts. Si guarda el archivo .ts (causando una compilación), el archivo .js se revisa y actualiza automáticamente. – Quango

Respuesta

1

Este es un problema conocido (o característica que falta):

http://typescript.codeplex.com/workitem/108

+0

Gracias, ya había pensado en algo. El uso de Web Essentials 2012 ofrece la posibilidad de compilar automáticamente un archivo TypeScript (.ts) cuando se guarda en Visual Studio. También tiene una función de vista previa. [link] http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6 – iSchlicht

+0

Web Essentials 2012 sufre del mismo problema ... –

7

No comprobar en el archivo .js. Usamos este enfoque en nuestro proyecto de TypeScript y funciona bien. No es necesario tener el .js generado en el control de la fuente; piense en los archivos .js como salida del proyecto, como .exe o .dll.

+4

El problema con esto es que el archivo .js hace no se genera en el sitio de producción en la compilación ... –

0

I experienced esto ayer.

Como dije, no agregue los archivos .js generados a TFS; o agregue tf checkout y tf checkin al objetivo BeforeBuild.

1

He aquí una solución alternativa: mantener sus archivos JS como parte del proyecto y en control de fuente.

Utilice un área de trabajo local, ya que esto no aplica el indicador de solo lectura en los archivos, por lo que guardar los archivos .JS no requiere un check-out para escribirlo.

Lo encontré porque no estaba presentando este problema, pero otros en mi equipo sí lo estaban, así que después de algunas investigaciones descubrí qué era diferente. Estaba usando un espacio de trabajo local en lugar de un área de trabajo del servidor.

Los otros miembros del equipo se han convertido a un Área de trabajo local y vuelven a navegar tranquilamente.

0

En respuesta a las personas que sugieren la exclusión de archivos .js del proyecto, debo decir que esto solo puede funcionar en software de solución pequeño e individual. En una gran aplicación de software, es decir, un ERP, generalmente existen múltiples soluciones por módulo, y cuando cada uno tiene archivos .js por sí mismos, la entrega de .js y otros archivos fuente de este tipo generalmente se hace convirtiéndolos en "Recursos incrustados" y algunos personalizados. proveedor de ruta virtual o algo así.

Entonces, ¿qué funciona? This solution podría ayudarlo, le sugiero que lo intente.

Pero de todos modos, como A. M. mencionó. este es un error conocido. Y creo que la mejor solución para el compilador de TypeScript sería omitir la escritura de archivos .js para aquellos archivos .ts que son de solo lectura (check-in).

4

Ahora,   si su servidor de compilación está configurado para la ejecución de Typescript, TSC se ejecutará y generará los archivos de JavaScript.

Aquí hay otra solución alternativa, en caso de que no desee eliminar el archivo JS. Porque, si elimina el JS por el momento, y cualquier otro desarrollador revisa esos archivos nuevamente en TFS, se producirá el mismo error.(Más sobre esos son archivos ocultos, por lo que si no el check-in con cuidado, que se puede comprobar-in en TFS)

En este caso, puede ejecutar un evento Pre-Construcción, que eliminará toda lectura -únicamente atributos de los archivos JS para ese proyecto.

1. Haga clic derecho en el Proyecto y abrir la ventana Propiedades del Proyecto

2. Seleccione el Generar eventos Tab

enter image description here

Esto asegurará, toda el archivo JS libera los atributos de solo lectura y no habrá ningún error al escribir en el archivo fallido.

Espero que esto ayude.

Fuente: http://dailydotnettips.com/2014/05/03/typescript-emit-error-write-to-file-failed-how-to-resolve

+1

he añadido 'attrib -r/s" $ (ProjectDir) *. js.map "' también –