टाइपप्रति और TFS से संबंधित समस्याएं

वोट
10

शायद टाइपप्रति के साथ एक साथ आयोजित TFS दृश्य स्टूडियो परियोजना के साथ एक समस्या है।

निर्माण पर 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

.js फ़ाइल में जाँच करें। हम अपने टाइपप्रति परियोजना पर यह तरीका अपनाते हैं और यह अच्छी तरह से काम करता है। स्रोत नियंत्रण में उत्पन्न .js के लिए कोई जरूरत नहीं है; परियोजना उत्पादन, एक .exe या .dll की तरह के रूप में .js फ़ाइलों के बारे में सोच।

14/10/2012 को 02:59
का स्रोत उपयोगकर्ता

वोट
4

अब, अगर अपने निर्माण सर्वर टाइपप्रति रन के लिए कॉन्फ़िगर किया गया है, टीएससी चलाने के लिए और JavaScript फ़ाइलों को उत्पन्न करेगा।

यहाँ एक और वैकल्पिक समाधान है, मामले में आप जे एस फ़ाइल को हटाने के लिए नहीं करना चाहती। क्योंकि, अगर आप TFS में फिर से उन फ़ाइल में किसी भी अन्य डेवलपर की जांच कुछ समय के लिए जे एस हटाने, और, एक ही त्रुटि तब आ जाएगा। (उन पर अधिक, छिपी हुई फ़ाइलें हैं, ताकि आप चेक-इन नहीं करते हैं तो ध्यान से, वे TFS में चेक-इन किया जा सकता है)

इस मामले में, आप एक पूर्व बिल्ड घटना, केवल पढ़ने के लिए सभी कि इस परियोजना के लिए जे एस फ़ाइलों की विशेषताओं को हटा देगा कि चला सकते हैं।

1. राइट क्लिक पर परियोजना और ओपन परियोजना संपत्ति विंडो

2. का चयन करें घटना बिल्ड टैब

यहाँ छवि विवरण दर्ज

यह सुनिश्चित करेगा सभी जे एस फ़ाइल रिहाई केवल पढ़ने के लिए जिम्मेदार बताते हैं और लिखने में विफल रहा है फाइल करने के लिए के लिए किसी भी त्रुटि नहीं होगी।

उम्मीद है की यह मदद करेगा।

स्रोत: http://dailydotnettips.com/2014/05/03/typescript-emit-error-write-to-file-failed-how-to-resolve

28/11/2015 को 06:05
का स्रोत उपयोगकर्ता

वोट
1

यहाँ एक समाधान है: परियोजना के हिस्से के रूप में और स्रोत नियंत्रण में अपने जे एस फ़ाइलें रखने के लिए।

एक स्थानीय कार्यस्थान का उपयोग करें, क्योंकि यह फ़ाइलों पर केवल पढ़ने के लिए ध्वज पर लागू नहीं होता है, तो .js फ़ाइलों की बचत एक चेक-आउट करने के लिए यह करने के लिए लिखे जाने की आवश्यकता नहीं है।

क्योंकि मैं इस समस्या का प्रदर्शन नहीं कर रहा था मैं इस पाया है, लेकिन अपनी टीम में अन्य लोगों के थे, इसलिए कुछ खुदाई के बाद मुझे पता चला कि क्या अलग था। मैं एक स्थानीय कार्यस्थान के बजाय एक सर्वर कार्यस्थान उपयोग कर रहा था।

टीम के अन्य सदस्यों के लिए एक स्थानीय कार्यस्थान में बदल जाती है और वे चिकनी नौकायन एक बार फिर से कर रहे हैं।

18/07/2013 को 11:30
का स्रोत उपयोगकर्ता

वोट
1

यह (या लापता सुविधा) एक ज्ञात बग है:

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

08/10/2012 को 14:52
का स्रोत उपयोगकर्ता

वोट
0

समस्या:
आप TFS करने के लिए उत्पन्न * .js फ़ाइलों को जोड़ है, तो TFS उन्हें, अगर आप उन्हें चेक इन, या उन्हें बाहर की जाँच नहीं है लिखने-सुरक्षा करता है। तो अगर आप * .ts फ़ाइल बदलने के लिए, यह * .js फ़ाइल, क्योंकि फ़ाइल लेखन-सुरक्षित है उत्पन्न नहीं कर सकते।
==> त्रुटि
लेकिन अगर आप उन में जांच नहीं करते, * .js फ़ाइल अगर आप को तैनात चलाने लापता कर दिया जाएगा।
==> संकलन है, लेकिन रनटाइम त्रुटि
इसके अलावा, अगर आप एक एम्बेडेड संसाधन के रूप में की जरूरत है, तो आप फ़ाइल को अलग नहीं कर सकते हैं ...

अतिरिक्त समस्या 1:
आप को चलाने के "पुनर्निर्माण समाधान" हैं, तो दृश्य स्टूडियो को हटाने के लिए * टाइपप्रति द्वारा उत्पन्न फ़ाइलों .js, इससे पहले कि यह निर्माण कार्यान्वित चाहता है।
लेकिन हटाने संभव नहीं है, क्योंकि * .js फ़ाइलों लिखने के लिए सुरक्षित ... हैं
==> त्रुटि

अतिरिक्त समस्या 2:
साफ नहीं है के बाद से "बनाएँ", पूर्व निर्माण की घटनाओं स्वच्छ पर निष्पादित नहीं कर रहे हैं ...
तो अगर आप पहले से निर्माण पर लिखने-सुरक्षा निकालने, यदि आप "का निर्माण" है काम करेंगे, लेकिन यह यदि आप चुनते हैं "पुनर्निर्माण", चाहे आप इसे समाधान में या परियोजना में क्या पर ध्यान दिए बिना असफल हो जायेगी।

अतिरिक्त समस्या 3:
आप परियोजना सेटिंग्स संपादक में एक पूर्व साफ घटना आदेश को परिभाषित नहीं कर सकते हैं।

तो, यहाँ आप क्या कर सकते हैं:
भागो 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= बनाम 2017

और मैक्रो का वास्तविक मूल्य पता लगाने के लिए:

  • सही समाधान Explorer में अपने परियोजना पर क्लिक करें, गुण
  • चयन घटनाक्रम बिल्ड टैब
  • क्लिक करें संपादित करें पूर्व निर्माण या बाद के निर्माण संपादित करें बटन, या तो ठीक है
  • विंडो में, क्लिक करें मैक्रो बटन
  • यदि आप पाते हैं जब तक इस सूची में नीचे स्क्रॉल 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 और इस तरह के अन्य स्रोत फ़ाइलें है जब आम तौर पर उन्हें "एम्बेडेड संसाधन" और कुछ कस्टम बनाने द्वारा किया जाता है आभासी पथ प्रदाता या कुछ और।

तो, क्या काम करता है? यह समाधान आप मदद कर सकता है, मैं तुम्हें यह कोशिश सुझाव देते हैं।

लेकिन वैसे भी, के रूप में पूर्वाह्न उल्लेख किया है। यह एक ज्ञात बग है। और मुझे लगता है टाइपप्रति संकलक लिए सबसे अच्छा समाधान उन .ts फ़ाइलों को केवल पढ़ने के लिए कर रहे हैं (चेक-इन) खुद के लिए लेखन .js फ़ाइलों को छोड़ने के लिए किया जाएगा।

06/07/2015 को 06:14
का स्रोत उपयोगकर्ता

वोट
0

मैं अनुभव यह कल।

के रूप में iano कहा गया है, TFS करने के लिए उत्पन्न .js जोड़ने नहीं है, या जोड़ने tf checkoutऔर tf checkinBeforeBuild लक्षित करने के लिए।

20/11/2012 को 13:43
का स्रोत उपयोगकर्ता

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