2012-10-08 21 views
10

Probabilmente c'è un problema con il progetto TFS Visual Studio condotto insieme a Typescript.Problemi con TypeScript e TFS

Su build tsc non è possibile sovrascrivere il file .js readonly e genera errore di autorizzazione negato.

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. 

E 'possibile senza esplicitamente la ricezione dei files di utilizzare una build con TSC?

+1

FYI l'ultima versione di Visual Studio 2013, con aggiornamento 3 ha risolto questo problema. Ho un progetto in cui il file .js è sotto il controllo del codice sorgente TFS, annidato sotto il file .ts. Se salvi il file .ts (causando una compilazione) il file .js viene controllato automaticamente e aggiornato. – Quango

risposta

1

Questo è un bug noto (o caratteristica mancante):

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

+0

Grazie, avevo già pensato a qualcosa. L'utilizzo di Web Essentials 2012 offre la possibilità di compilare automaticamente un file TypeScript (.ts) quando viene salvato in Visual Studio. Ha anche una funzione di anteprima. [link] http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6 – iSchlicht

+0

Web Essentials 2012 soffre dello stesso problema .... –

7

non controlli nel file .js. Usiamo questo approccio sul nostro progetto TypeScript e funziona bene. Non è necessario avere i js generati nel controllo del codice sorgente; pensa ai file .js come output del progetto, come un file .exe o .dll.

+4

Il problema con questo è che il file .js quindi fa non generato nel sito di produzione su build ... –

0

I experienced questo ieri.

Come ha dichiarato iano, non aggiungere i file .js generati a TFS; oppure aggiungi tf checkout e tf checkin alla destinazione di BeforeBuild.

1

Ecco una soluzione alternativa: mantenere i file JS come parte del progetto e nel controllo del codice sorgente.

Utilizzare un'area di lavoro locale, in quanto non si applica il flag di sola lettura sui file, pertanto il salvataggio dei file .JS non richiede un check-in per il quale è necessario scrivere.

Ho trovato questo perché non stavo mostrando questo problema, ma altri nella mia squadra erano, quindi dopo alcuni scavi ho scoperto cosa era diverso. Stavo usando uno spazio di lavoro locale invece di uno spazio di lavoro del server.

Gli altri membri del team si sono convertiti in uno spazio di lavoro locale e sono di nuovo in navigazione.

0

In risposta alle persone che suggeriscono l'esclusione dei file .js dal progetto, devo dire che questo può funzionare solo con software di soluzione piccolo e singolo. In una grande applicazione software, ad esempio un ERP, di solito esistono più soluzioni per modulo, e quando ciascuna ha file .js per se stessi, la consegna di file .js e di altri file di origine di solito viene effettuata rendendoli "Risorse incorporate" e alcune abitudini fornitore di percorsi virtuali o qualcosa del genere.

Quindi, che cosa funziona? This solution potrebbe aiutarti, ti suggerisco di provarlo.

Ma comunque, come ha detto A. M.. Questo è un bug conosciuto. E penso che la soluzione migliore per il compilatore TypeScript sarebbe quella di saltare la scrittura di file .js per quei file .ts che sono di sola lettura (check-in).

4

Ora,   se il server di generazione è configurato per l'esecuzione di Typescript, TSC eseguirà e genererà i file JavaScript.

Ecco un'altra soluzione alternativa, nel caso in cui non si desideri rimuovere il file JS. Perché, se si rimuove il JS per un certo periodo di tempo e qualsiasi altro sviluppatore ricontrolla il file in TFS, si verificherà lo stesso errore.(più di quelli sono file nascosti, quindi se non effettui il check-in con attenzione, possono essere archiviati in TFS)

In questo caso, puoi eseguire un evento di pre-compilazione, che rimuoverà tutte le letture - solo attributi dei file JS per quel progetto.

1. Fare clic destro sul Progetto e aprire la finestra delle proprietà del progetto

2. Selezionare l'evento Corporatura Tab

enter image description here

Ciò garantirà, tutto il file JS rilascia gli attributi di sola lettura e non ci sarà alcun errore per la scrittura su file fallita.

Spero che questo aiuti.

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

+1

ho aggiunto 'attrib -r/s" $ (ProjectDir) *. js.map "' anche –