Problemas con mecanografiado y TFS

votos
10

Es probable que haya un problema con el proyecto de Visual Studio TFS llevado a cabo junto con Letra de imprenta.

Por acumulación TSC no puede sobrescribir el archivo de sólo lectura Js una lanza de error de 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 a utilizar una versión con CET?

Publicado el 08/10/2012 a las 11:30
fuente por usuario
En otros idiomas...                            


7 respuestas

votos
7

No comprobar en el archivo .js. Utilizamos este enfoque en nuestro proyecto mecanografiado y funciona bien. No hay necesidad de tener los .js generados en control de código fuente; pensar en los archivos .js como resultado del proyecto, como un .exe o .dll.

Respondida el 14/10/2012 a las 02:59
fuente por usuario

votos
4

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

Aquí hay otra solución alternativa, en caso de que no desea eliminar el archivo JS. Porque, si se quita el JS por ser el tiempo, y cualquier otra comprobación desarrollador en los archivo de nuevo en TFS, el mismo error vendrá producirse. (Más sobre esos son archivos ocultos, por lo que si usted no marca en cuidado, pueden ser revisados-in en TFS)

En este caso, puede ejecutar un evento Pre-Construcción, que eliminará todo de sólo lectura 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

introducir descripción de la imagen aquí

Esto asegurará, todas la liberación del archivo JS atributos de sólo lectura y no habrá ningún error para escribir en el archivo falló.

Espero que esto ayude.

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

Respondida el 28/11/2015 a las 03:05
fuente por usuario

votos
1

Aquí hay una solución: Para mantener sus archivos JS como parte del proyecto y en el control de código fuente.

Utilice un espacio de trabajo local, ya que esto no se aplica el indicador de sólo lectura en los archivos, por lo que el ahorro de los archivos .JS no requieren una salida para que pueda ser escrito a.

He encontrado esto porque no estaba exhibiendo este problema, pero otros en mi equipo fuera, así que después de algo de investigación descubrí lo que era diferente. Yo estaba usando un espacio de trabajo local en lugar de un espacio de trabajo del servidor.

Los otros miembros del equipo han convertido en un espacio de trabajo local y están viento en popa, una vez más.

Respondida el 18/07/2013 a las 11:30
fuente por usuario

votos
1

Se trata de un error conocido (función o desaparecidos):

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

Respondida el 08/10/2012 a las 14:52
fuente por usuario

votos
0

Problema:
Si agrega los archivos generados * .js a TFS, entonces TFS les protege contra escritura, si marca en, o no comprobar a cabo. Así que si cambia el archivo * Ts, no se puede generar el archivo * .js, porque el archivo está protegido contra escritura.
==> Error
Pero si no se comprueba en el archivo * .js se perderá si se ejecuta desplegar.
==> Compila error, pero en tiempo de ejecución
También, si lo necesita como un recurso incrustado, no se puede excluir el archivo ...

Problema adicional 1:
Si ejecuta "Volver a generar solución", Visual Studio quiere borrar el * .js generados por mecanografiado, antes de ejecutar la acumulación.
Sin embargo, esta acción no es posible, porque los archivos del * Js están protegidos contra escritura ...
==> Error

Problema adicional 2:
Dado que no es limpia "Construir", el pre-construyen los eventos no se ejecutan en limpio ...
Así que si se quita la protección contra escritura en la pre-construcción, que funcionará si "construir", pero se producirá un error si se elige "Reconstruir", independientemente de si lo haces en la solución o en el proyecto.

Problema adicional 3:
No se puede definir un comando evento de pre-limpieza en el Redactor configuración del proyecto.

Por lo tanto, esto es lo que puede hacer:
Ejecutar attrib -r /s(elimina la protección contra escritura) en su typescripted * .js como acción previa a la compilación.
p.ej

attrib -r /s "$(ProjectDir)Resources/Scripts/0/*.js"

Esto funciona, porque * se expande:

  • Si no existe el archivo, no hay ningún error, ya que no se ejecuta ningún comando.
  • Si el archivo no existe, no hay ningún error, se ejecuta el comando.

Si desea ejecutarlo en un nombre de archivo, sería un error si no existe el archivo.

Ahora, tiene que editar el archivo de proyecto (* .csproj) con la mano, para agregar una acción pre-limpieza.
La acción pre-limpia es la misma que la acción previa a la compilación.

  <Target Name="BeforeClean">
    <!-- DO YOUR STUFF HERE -->
    <Exec Command="attrib -r /s &quot;$(ProjectDir)Resources/Scripts/0/*.js&quot;" />
  </Target>

Y hay que ir. Ahora puede comprobar los archivos * .js en, puede editar el archivo * Ts (que necesita para desproteger el * .js archivo o ejecute acumulación después)

Si desea que se ejecute en una base por archivo, el comando es:

if EXIST "$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js" (
attrib -r "$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js"
)

o en XML-formulario:

<Exec Command="if EXIST &quot;$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js&quot; (&#xD;&#xA;attrib -r &quot;$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js&quot;&#xD;&#xA;)" />

Y en vez de eliminar el atributo de sólo lectura al por mayor en la acción previa a la compilación, también se puede comprobar los archivos individuales con la herramienta de TFS de línea de comandos:
"$(DevEnvDir)CommonExtensions/Microsoft/TeamFoundation/Team Explorer/tf.exe" checkout /lock:none "$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js"

Por cierto, se puede encontrar una lista de macros VisualStudio / MSBUILD aquí:
https://docs.microsoft.com/en-us/cpp/ide/common-macros-for-build-commands-and-properties?view= vS-2017

Y para averiguar el valor real de la macro:

  • haga clic derecho en su proyecto en el Explorador de soluciones, seleccione Propiedades
  • seleccionar los Eventos de generación pestaña
  • haga clic en la edición previa a la compilación o Editar posterior a la generación botón, o bien está bien
  • En la ventana que aparece, haga clic en el Macros botón
  • desplazarse por la lista hasta que se encuentre ProjectDir, en el siguiente panel es su valor real

Además, en lugar de utilizar el evento de pre-construcción en el proyecto, se puede añadir el pago y envío de comandos como BeforeBuild-objetivo. De esta manera nadie puede quitar accidentalmente que si ponen algo en pre-construcción en-configuración del proyecto.

  <Target Name="BeforeBuild">
    <Exec Command="&quot;$(DevEnvDir)CommonExtensions/Microsoft/TeamFoundation/Team Explorer/tf.exe&quot; checkout /lock:none &quot;$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js&quot;" />
  </Target>
Respondida el 06/02/2019 a las 13:09
fuente por usuario

votos
0

En respuesta a las personas que sugieren exclusión de archivos .js desde el proyecto, tengo que decir que esto sólo puede funcionar en el software de la pequeña y única solución. En una aplicación de software grande es decir, un ERP, suele existir múltiples soluciones por módulo, y cuando cada uno tiene archivos .js por sí mismos, Js entrega y otros archivos de origen de este tipo por lo general se hace al hacer "recursos implícitos" y alguna costumbre proveedor de ruta de acceso virtual o algo así.

Por lo tanto, lo que funciona? Esta solución podría ayudarle, le sugiero que lo intente.

Pero de todos modos, como se ha mencionado AM. esto es un error conocido. Y creo que la mejor solución para el compilador mecanografiado sería para omitir los archivos .js de escritura para esos archivos .ts que son de sólo lectura (check-in) a sí mismos.

Respondida el 06/07/2015 a las 06:14
fuente por usuario

votos
0

Yo experimenté esto ayer.

Como se ha indicado iano, no añada los .js generados a TFS; o añadir tf checkouty tf checkinal objetivo BeforeBuild.

Respondida el 20/11/2012 a las 13:43
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more