টিমসিটি বিল্ডে কেন পোস্ট-বিল্ড স্টেপ (এক্সকপি) মাঝে মধ্যে কোড 2 সহ প্রস্থান করবেন?


94

আমার ক্লায়েন্টের সমাধানে কয়েকটি প্রকল্পের একটি বিল্ড-পরবর্তী ইভেন্ট রয়েছে: xcopyনির্দিষ্ট ফোল্ডারে বিল্ড আউটপুট। স্থানীয়ভাবে নির্মাণের সময় এটি কাজ করে works তবে টিমসিটিতে আমি মাঝে মধ্যেই পাই

xcopy [...] কোড 2 সহ বেরিয়েছে

আমি যদি নিয়মিত ব্যবহার করি তবে copyকোড 1 দিয়ে এটি বের হয়ে যায় I আমি /yফাইলগুলি ওভাররাইটিংয়ে প্রম্পট না করার জন্য ব্যবহার করি ।

কেন এটি টিমসিটিতে ব্যর্থ হয় তবে স্থানীয়ভাবে নয়?


আমার একই রকম সমস্যা ছিল তবে একই সাথে একই ফাইলটি সমান্তরালে অনুলিপি করা সম্পর্কিত। আপনি কি দুবার পরীক্ষা করতে পারবেন যে কোনও ফাইল দু'বার অনুলিপি করা হয়নি?
ইগনাসিও সোলার গার্সিয়া

5
প্রস্থান কোড 2 এর অর্থ The user pressed CTRL+C to terminate xcopy। হেহে।
হ্যানস প্যাস্যান্ট

@ সোমোস হ্যাঁ, অনুলিপি করা ফাইলগুলি অবশ্যই আলাদা are
টিম আইলস 20:40

@ હંসপাসান্ট আমি জানি না কেন টিমসিটি আমার উপর সিটিআরএল + সি চাপতে চায়! :(
টিম আইলস

5
ইয়াহ, আমিও না। অন্যান্য সাধারণ কনভেনশনটি হ'ল প্রস্থান কোডটি সর্বশেষ উইন্ডোজ ত্রুটি বা ব্যতিক্রমের সমান। ত্রুটি 2 এর অর্থ "ফাইলটি পাওয়া যায় নি"। যা অবশ্যই অনেক বেশি অর্থবোধ করে।
হান্স প্যাস্যান্ট

উত্তর:


149

আপনি যদি /YXcopy এর সাথে স্যুইচটি সরবরাহ করেন, আপনি তখনও একটি ত্রুটি পাবেন যখন আপনি যখন অনুলিপি করছেন সেটি কোনও ফাইল বা ডিরেক্টরি কিনা তা এক্সকপি জানে না। এই ত্রুটিটি "কোড 2 সহ প্রস্থানিত" হিসাবে প্রদর্শিত হবে। আপনি যখন কমান্ড প্রম্পটে একই xcopy চালান, আপনি দেখতে পাবেন যে xcopy ফাইল বা ডিরেক্টরিতে প্রতিক্রিয়া চেয়েছে।

একটি স্বয়ংক্রিয় বিল্ড দিয়ে এই সমস্যাটি সমাধান করতে আপনি পাইপের সাহায্যে প্রাক-সংজ্ঞায়িত প্রতিক্রিয়ার প্রতিধ্বনি করতে পারেন।

আপনি যে জিনিসটি অনুলিপি করছেন তা বলতে একটি ফাইল, প্রতিধ্বনি করুন F:

echo F|xcopy /y ...

আপনি যে জিনিসটি অনুলিপি করছেন সেটি বলতে একটি ডিরেক্টরি, প্রতিধ্বনিত হন D:

echo D|xcopy /y ...

কখনও কখনও উপরেরগুলি এক্সকপির পরিবর্তে কেবল একটি অনুলিপি আদেশ ব্যবহার করে সমাধান করা যেতে পারে:

copy /y ...

তবে, যদি চূড়ান্ত ফাইল গন্তব্যের দিকে পরিচালিত অ-অস্তিত্বের ডিরেক্টরি থাকে তবে একটি "কোড 1 সহ প্রস্থানিত" ঘটবে।

মনে রাখবেন: /Cসাবধানতার সাথে স্যুইচ এবং এক্সকপি ব্যবহার করুন ।


ধন্যবাদ @ মেট্রো স্মুরফ এটি আমার সমস্যার সমাধান করেছে কিনা তা আমি পরীক্ষা করতে পারছি না, তবে আপনি যা বলছেন তা বুদ্ধিমান বলে তাই আমি এটিকে উত্তর হিসাবে চিহ্নিত করেছি। চিয়ার্স!
টিম আইলস

আমি ঠিক একই সমস্যার মধ্যে দৌড়ছিলাম এবং শেষ পর্যন্ত প্রতিক্রিয়াতে পাইপিংয়ের সাথে শেষ হয়েছিল। আশা করি এটি দীর্ঘকালীন অন্য কাউকে সহায়তা করবে।
মেট্রো স্মুরফ

4
"এটি উইন্ডোজের স্থানীয় সংস্করণগুলির অধীনে কাজ করে না, যেখানে প্রম্পট শব্দগুলি পৃথক হতে পারে An বিকল্প কৌশলটি গন্তব্যের শেষের দিকে একটি নক্ষত্র যুক্ত করা, তারপরে xcopy ফাইল / ডিরেক্টরিতে অনুরোধ জানাবে না Go গোরভার্ট জান 28 এ 19:40 "সুতরাং, আপনি প্রতিলিপিটি ডি (এটি নির্ভরযোগ্য নয়) ছাড়াই এর মতো অনুলিপিটি করতে পারেন: এক্সসিপিওয়াই D (প্রজেক্টডির) .. rip স্ক্রিপ্টস * $ (টার্গেটডির) স্ক্রিপ্টগুলি * / ওয়াই / আর। অথবা প্রতিলিপিটি এটিকে ছাড়া এই অনুলিপিটি করুন: XCOPY D: \ file.zip c: named নাম পরিবর্তন করা হয়েছে ফাইল.জিপ / ওয়াই / আর
লাইটনাইটশেড

@leetNightshade - *পাশাপাশি ডিরেক্টরিগুলিও কাজ করবে ? অথবা এটি কি কেবল ফাইলের জন্য?
মেট্রো স্মুরফ

@ মেট্রোস্মার্ফ এইচএম, আমার উদাহরণটির ফর্ম্যাটিংটি ব্যর্থ হয়েছে বলে মনে হচ্ছে, ব্যাকস্ল্যাশগুলি নেই (অবশ্যই ভেবেছিলাম আমি প্রতীক থেকে বাঁচার চেষ্টা করছিলাম) এবং নিখুঁত নিখোঁজ রয়েছে। তবে হ্যাঁ, এটি ডিরেক্টরি এবং ফাইলগুলির সাথে কাজ করে। : এখানে Govert এর উত্তর লিঙ্ক stackoverflow.com/a/14022309/353094
leetNightshade

37

আমি আমার পথের শেষে একটি adding যুক্ত করে ত্রুটি কোড 2 ঠিক করেছি, এটি ছাড়া, xcopy মনে করবে এটি কোনও ফোল্ডারের পরিবর্তে একটি ফাইল।


4
এটাই. উইন্ডোজ 7, ​​ভিজ্যুয়াল স্টুডিও 2013 এ ঠিক কাজ করেছে অনেক অনেক ধন্যবাদ!
চার্লস

33

আপনি যদি কোনও পোস্ট বিল্ড ইভেন্টে এক্সকপি ব্যবহার করে থাকেন তবে / সি ছাড়াও / ওয়াই সুইচটি ব্যবহার করুন।

/C           Continues copying even if errors occur.
/Y           Suppresses prompting to confirm you want to overwrite an existing file.

4
খুবই সোজা! /Yপ্রম্পট দমন! কেন এটি এত কঠিন ছিল?
দক্ষিণশোরাক

4
/ ওয়াই ওভাররাইট প্রম্পটটি দমন করে না, তবে কোড 2 এর একমাত্র কারণ এটি নয় কারণ আরটিএফএম তাদের কারণ কী তা আপনাকে জানায় না।
এমসাল্টাররা

2

এই সমস্যাটির জন্য আমার স্থির লক্ষ্য হ'ল টার্গেট বিন ফোল্ডারে যেতে হবে এবং নিশ্চিত করা হয়েছিল যে সেখানে উপযুক্ত সাবফোল্ডার উপস্থিত রয়েছে। একবার সেই সাবফোল্ডারটি ম্যানুয়ালি তৈরি হয়ে গেলে, বিল্ড প্রক্রিয়াটি সফলভাবে শেষ হয়েছিল।


2

copyএটা আমার জন্য স্থির কর xcopy with /c /yএটা কাজ করছে না. আমি একজন প্রস্থান 4 তাই আমি সঙ্গে গিয়েছিলাম পেয়ে ছিল xcopy, কিন্তু নিষ্কাশিত আমি কাছাকাছি কোট প্রয়োজন ($TargetPath)

আমার লিপি:

if $(ConfigurationName) == Debug copy "$(TargetPath)" "$(SolutionDir)\Folder\bin\Debug\$(TargetFileName)"

2

সম্ভবত আপনি গিট দিয়ে টিমসিটি ব্যবহার করছেন। যদি হ্যাঁ, আপনি অনুলিপি করতে চান যে ফোল্ডারগুলি গিট সংগ্রহস্থলটিতে বিদ্যমান আছে তা পরীক্ষা করুন । সাধারণত গিট অ্যাভয়েড খালি প্রোজেক্ট ফোল্ডারগুলিকে ভান্ডারে যুক্ত করে তাই xcopyএটি খুঁজে পেতে ব্যর্থ হয় এবং ত্রুটি উত্পন্ন করে।

আপনি খালি ফোল্ডারে কিছু খালি পাঠ্য ফাইল যুক্ত করতে পারেন, প্রতিশ্রুতিবদ্ধ করতে এবং ফোল্ডারটি ভান্ডারে প্রদর্শিত হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.