Προβλήματα με γραφομηχανή και TFS

ψήφοι
10

Πιθανόν να υπάρχει πρόβλημα με την TFS έργο της Visual Studio διεξαχθεί μαζί με γραφομηχανή.

Την κατασκευή TSC δεν μπορείτε να αντικαταστήσετε το αρχείο μόνο για ανάγνωση .js ένας ρίχνει άδεια απορρίφθηκε σφάλμα.

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. 

Είναι δυνατόν χωρίς ρητώς να ελέγξει έξω τα αρχεία για να χρησιμοποιήσετε μια κατασκευή με TSC;

Δημοσιεύθηκε 08/10/2012 στις 11:30
πηγή χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
7

Μην κάνετε check-in στο αρχείο .js. Χρησιμοποιούμε αυτή την προσέγγιση στο έργο γραφομηχανή μας και λειτουργεί καλά. Δεν υπάρχει καμία ανάγκη να έχουν τα δημιουργούνται .js σε έλεγχο πηγή? σκεφτείτε τα .js αρχεία εξόδου του έργου, όπως ένα .exe ή .dll.

Απαντήθηκε 14/10/2012 στις 02:59
πηγή χρήστη

ψήφοι
4

Τώρα, αν ο διακομιστής κατασκευής σας έχει ρυθμιστεί για την εκτέλεση γραφομηχανή, TSC θα τρέξει και να δημιουργήσει τα αρχεία JavaScript.

Εδώ είναι μια άλλη εναλλακτική λύση, σε περίπτωση που δεν θέλετε να καταργήσετε το αρχείο JS. Διότι, εάν αφαιρέσετε την JS για ώρα, και οποιονδήποτε άλλο έλεγχο του έργου στο εν λόγω αρχείο και πάλι σε TFS, το ίδιο σφάλμα θα έρθει συμβεί. (Πιο πάνω από αυτά είναι κρυφά αρχεία, οπότε αν δεν το check-in προσεκτικά, μπορούν να ελεγχθούν στο TFS)

Σε αυτήν την περίπτωση, μπορείτε να εκτελέσετε μια εκδήλωση προ-Build, που θα αφαιρέσει όλες τις ιδιότητες μόνο για ανάγνωση των αρχείων JS για το εν λόγω έργο.

1. Κάντε δεξί κλικ στο Έργο και ανοίξτε το έργο Παράθυρο Ακίνητα

2. Επιλέξτε το Σώμα Εκδήλωση Tab

εισάγετε περιγραφή της εικόνας εδώ

Αυτό θα εξασφαλίσει, όλη η απελευθέρωση αρχείο JS το μόνο για ανάγνωση χαρακτηριστικά και δεν θα υπάρχει οποιοδήποτε λάθος για την εγγραφή στο αρχείο απέτυχε.

Η ελπίδα αυτό βοηθά.

Πηγή: http://dailydotnettips.com/2014/05/03/typescript-emit-error-write-to-file-failed-how-to-resolve

Απαντήθηκε 28/11/2015 στις 06:05
πηγή χρήστη

ψήφοι
1

Εδώ είναι μια λύση: να κρατήσετε τα αρχεία σας JS ως μέρος του έργου και τον έλεγχο πηγή.

Χρησιμοποιήστε ένα τοπικό χώρο εργασίας, δεδομένου ότι αυτό δεν ισχύει για το μόνο για ανάγνωση σημαία σε αρχεία, έτσι την αποθήκευση των αρχείων .js δεν απαιτούν check-out για να μπορεί να γράψει.

Βρήκα αυτό γιατί δεν παρουσιάζουν αυτό το πρόβλημα, αλλά άλλοι στην ομάδα μου ήταν, έτσι μετά από λίγο σκάψιμο έμαθα τι ήταν διαφορετική. Ήμουν χρησιμοποιώντας ένα τοπικό χώρο εργασίας αντί ενός χώρου εργασίας διακομιστή.

Τα άλλα μέλη της ομάδας έχουν μετατραπεί σε Τοπικό Workspace και είναι ομαλή ιστιοπλοΐα για άλλη μια φορά.

Απαντήθηκε 18/07/2013 στις 11:30
πηγή χρήστη

ψήφοι
1

Αυτό είναι ένα γνωστό σφάλμα (ή λείπει το χαρακτηριστικό):

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

Απαντήθηκε 08/10/2012 στις 14:52
πηγή χρήστη

ψήφοι
0

Πρόβλημα:
Αν προσθέσετε τις παράγεται * .js αρχεία σε TFS, στη συνέχεια, TFS να γράψουν-προστατεύει, αν τα check-in, ή δεν τους ελέγξετε έξω. Έτσι, εάν αλλάξετε το αρχείο * .ts, δεν μπορεί να δημιουργήσει το αρχείο * .js, επειδή το αρχείο έχει προστασία εγγραφής.
==> Σφάλμα
Αλλά αν δεν τους κάνουν check-in, το αρχείο * .js θα λείπει αν εκτελέσετε την ανάπτυξη.
==> Σφάλμα Συλλέγει, αλλά Runtime
Επίσης, αν το χρειάζεστε, όπως ένα ενσωματωμένο πόρων, που δεν μπορεί να αποκλείσει το αρχείο ...

Επιπλέον πρόβλημα 1:
Αν τρέχετε «Αναδόμηση λύση», Visual Studio θέλει να διαγράψετε το * .js αρχεία που δημιουργούνται από γραφομηχανή, πριν να εκτελέσει κατασκευής.
Αλλά διαγραφή δεν είναι δυνατή, επειδή τα αρχεία του * .js είναι προστασία εγγραφής ...
==> Σφάλμα

Επιπλέον πρόβλημα 2:
Από το καθαρό δεν είναι «Χτίστε», η προ-χτίσει γεγονότα δεν εκτελούνται σε καθαρό ...
Έτσι, αν αφαιρέσετε την προστασία εγγραφής στην προ-κατασκευή, θα λειτουργήσει αν δεν «χτίσει», αλλά θα αποτύχει αν επιλέξετε «Αναδόμηση», ανεξάρτητα από το αν το κάνετε στο διάλυμα ή στο έργο.

Επιπλέον πρόβλημα 3:
Δεν μπορείτε να ορίσετε μια εντολή προ-καθαρό εκδήλωση στον επεξεργαστή έργου ρυθμίσεις.

Έτσι, εδώ είναι ό, τι μπορείτε να κάνετε:
Run attrib -r /s(αφαιρεί προστασία εγγραφής) στο typescripted σας * .js αρχεία ως δράση προ-κατασκευή.
π.χ

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

Αυτό λειτουργεί, επειδή * επεκτείνεται:

  • Αν το αρχείο δεν υπάρχει, δεν υπάρχει λάθος, επειδή δεν εντολή εκτελείται.
  • Αν το αρχείο δεν υπάρχει, δεν υπάρχει λάθος, η εντολή εκτελείται.

Αν θέλετε να τρέξει σε ένα όνομα αρχείου, θα αποτύχει αν δεν υπάρχει το αρχείο.

Τώρα, θα πρέπει να επεξεργαστείτε το αρχείο έργου (* .csproj) με το χέρι, για να προσθέσετε ένα προ-καθαρή ενέργεια.
Η προ-καθαρή ενέργεια είναι η ίδια με την δράση προ-κατασκευή.

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

Και εκεί θα πάτε. Τώρα μπορείτε να ελέγξετε τα * .js αρχεία, μπορείτε να επεξεργαστείτε το αρχείο * .ts (θα χρειαστεί να καταργήσετε την προστασία το αρχείο * .js, ή να τρέξει κατασκευή των υστέρων)

Αν θέλετε να το τρέξει σε κάθε αρχείο βάσης, η εντολή είναι:

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

ή σε XML μορφή:

<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;)" />

Και αντί να αφαιρέσετε το χαρακτηριστικό μόνο για ανάγνωση χονδρικής στη δράση προ-κατασκευή, μπορείτε επίσης να ελέγξετε τα μεμονωμένα αρχεία με το εργαλείο TFS γραμμής εντολών:
"$(DevEnvDir)CommonExtensions/Microsoft/TeamFoundation/Team Explorer/tf.exe" checkout /lock:none "$(ProjectDir)Resources/Scripts/0/leaflet.EasyAjax.js"

Με την ευκαιρία, μπορείτε να βρείτε μια λίστα με μακροεντολές VisualStudio / MSBuild εδώ:
https://docs.microsoft.com/en-us/cpp/ide/common-macros-for-build-commands-and-properties?view= vs-2017

Και για να ανακαλύψει την πραγματική αξία της μακροεντολής:

  • κάντε δεξί κλικ στο έργο σας στο Solution Explorer, επιλέξτε Properties
  • επιλέξτε το Σώμα Εκδηλώσεις καρτέλα
  • κάντε κλικ στην προ-κατασκευή Επεξεργασία ή Επεξεργασία μετά την κατασκευή κουμπιού, είτε είναι μια χαρά
  • στο παράθυρο που θα ανοίξει, κάντε κλικ στο μακροεντολές κουμπί
  • μετακινηθείτε προς τα κάτω στη λίστα μέχρι να βρείτε ProjectDir, στο επόμενο παράθυρο είναι η πραγματική αξία του

Επίσης, αντί να χρησιμοποιήσετε την εκδήλωση προ-κατασκευή του έργου, μπορείτε να προσθέσετε το ταμείο ως εντολή BeforeBuild-στόχο. Με αυτόν τον τρόπο κανείς δεν μπορεί να το αφαιρέσετε accidentially αν βάλουμε κάτι σε προ-κατασκευή στο έργο-ρυθμίσεις.

  <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>
Απαντήθηκε 06/02/2019 στις 13:09
πηγή χρήστη

ψήφοι
0

Σε απάντηση στους ανθρώπους που υποδηλώνει τον αποκλεισμό των .js αρχεία από το έργο, πρέπει να πω ότι αυτό μπορεί να λειτουργήσει μόνο σε μικρές και ενιαίο λογισμικό λύση. Σε μια μεγάλη εφαρμογή λογισμικού, δηλαδή ένα ERP, υπάρχει συνήθως υπάρχει πολλαπλές λύσεις ανά μονάδα, και όταν το καθένα έχει .js αρχεία για τον εαυτό τους, προσφέροντας .js και άλλα αρχεία προέλευσης αυτού του είδους γίνεται συνήθως, καθιστώντας τους «Ενσωματωμένα Πόρων» και κάποια έθιμο εικονικό πάροχο δρόμο ή κάτι τέτοιο.

Έτσι, τι είναι; Η λύση αυτή μπορεί να σας βοηθήσει, σας προτείνω να το δοκιμάσετε.

Αλλά ούτως ή άλλως, όπως αναφέρεται AM. Αυτό είναι ένα γνωστό bug. Και νομίζω ότι η καλύτερη λύση για την γραφομηχανή compiler θα ήταν να παρακάμψετε τα αρχεία γραφής .js για αυτά τα αρχεία .ts που είναι μόνο για ανάγνωση (check-in) τους εαυτούς τους.

Απαντήθηκε 06/07/2015 στις 06:14
πηγή χρήστη

ψήφοι
0

Έχω βιώσει αυτό χθες.

Όπως αναφέρεται iano, μην προσθέτετε τις παράγεται .js σε TFS? ή να προσθέσετε tf checkoutκαι tf checkinστο στόχο BeforeBuild.

Απαντήθηκε 20/11/2012 στις 13:43
πηγή χρήστη

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