ভিজ্যুয়াল স্টুডিও আমাকে "কোড 4 সহ এক্সকপি থেকে বেরিয়ে এসেছে" বললে কী ভুল হচ্ছে


125

আমি বিল্ড-পরবর্তী ইভেন্টগুলির সাথে খুব বেশি পরিচিত নই, তাই আমার প্রোগ্রামে কী ঘটছে সে সম্পর্কে আমি কিছুটা বিভ্রান্ত। ভিজ্যুয়াল স্টুডিও 2010 সংকলন করার সময়, আমি নিম্নলিখিতগুলি পাই:

The command "xcopy C:\Users\Me\Path\Foo.bar\Library\dsoframer.ocx C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\Foo.bar\ApplicationFiles C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
xcopy C:\Users\Me\Path\url\ C:\Users\Me\Path\Foo.bar\bin\Debug\ /Y /E /D
rmdir /S /Q C:\Users\Me\Path\Foo.bar\bin\Debug\.gwt-tmp" exited with code 4.    

এই ত্রুটি থাকা সত্ত্বেও প্রোগ্রামটি ঠিকঠাক বলে মনে হচ্ছে , তবে আমি কেবল এই সমস্যাটিকে উপেক্ষা করতে চাই না এবং আশা করি খারাপ কিছু ঘটবে না। আশ্চর্যজনকভাবে, এই লাইনটি কেবলমাত্র একটি একক কমান্ড (প্রথম xcopy) হিসাবে শুরু হয়েছিল কিন্তু আমি প্রকল্পটি সংকলন অব্যাহত রাখার সাথে সাথে (অন্যান্য সমস্যাগুলি সমাধান করে, বেশিরভাগ রেফারেন্স করে) ত্রুটি বার্তাটি আরও বড় এবং বৃহত্তর প্রসারিত হয়েছিল। কি হতে পারে কোন ধারণা?

সম্পাদনা করুন: এখানে পোস্টবিল্ড ইভেন্টগুলি ব্যর্থ বলে মনে হচ্ছে -

xcopy $(ProjectDir)Library\dsoframer.ocx $(TargetDir) /Y /E /D
xcopy $(ProjectDir)ApplicationFiles $(TargetDir) /Y /E /D
xcopy $(SolutionDir)com.myUrl.gwt\www $(TargetDir) /Y /E /D
rmdir /S /Q $(TargetDir).gwt-tmp

2
নীচের উত্তরগুলি ছাড়াও, ভিএস সহ খোলার বিষয়টি নিশ্চিত করুন Administrator privileges। নির্দিষ্ট স্থানে অনুলিপি করতে প্রশাসকের অধিকার প্রয়োজন।
নিখিল অগ্রওয়াল

উত্তর:


166

Xcopy প্রস্থান কোড 4 মানে হলো " সূচনা ত্রুটি ঘটেছে। সেখানে পর্যাপ্ত মেমরি বা ডিস্ক স্থান নেই, অথবা আপনি কমান্ড লাইন একটি অবৈধ ড্রাইভ নাম অথবা অবৈধ সিনট্যাক্স প্রবেশ করে। "

দেখে মনে হচ্ছে ভিজুয়াল স্টুডিও এক্সকপিতে অবৈধ যুক্তি সরবরাহ করছে। এর মাধ্যমে আপনার পোস্ট-বিল্ড ইভেন্ট কমান্ডটি পরীক্ষা করুন Project > Right Click > Properties > Build Events > Post Build Event

মনে রাখবেন যে $(ProjectDir)বিস্তৃত হওয়ার পরে যদি ফলাফলের পথে বা অনুরূপ ম্যাক্রো পদগুলির শূন্যস্থান থাকে তবে সেগুলি ডাবল উদ্ধৃতিতে আবৃত করা দরকার। উদাহরণ স্বরূপ:

xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1

যেমনটি আমি বলেছি, পোস্ট-বিল্ড ইভেন্টের স্ক্রিপ্টগুলি সম্পর্কে আমি বেশি কিছু জানি না (এবং আমি এগুলি লিখিনি); আমি এটি কোথায় পাই?
রেভেন ড্রিমার

1
প্রোজেক্টগুলিতে যান> ইভেন্টগুলি তৈরি করুন
মার্ক সিডেড

2
প্রতিটি কমান্ডকে ডাবল কোট ( "command args") দিয়ে মোড়ানো চেষ্টা করুন ।
গ্রান্ট থমাস

@ মার্ক সিডেড - আমার মনে হয় না যে "কোথাও" ইভেন্টগুলি তৈরি করুন "। তালিকাভুক্ত সাধারণ বৈশিষ্ট্য: "স্টার্টআপ প্রকল্প; প্রকল্প নির্ভরতা; ডিবাগ উত্স ফাইলসমূহ; কোড বিশ্লেষণ সেটিংস"। তালিকাভুক্ত কনফিগারেশন বৈশিষ্ট্য: "কনফিগারেশন"।
রেভেন ড্রিমার

4
@ রেভেনড্রিমার: যদি $(ProjectDir)(এবং / অথবা অনুরূপ) এর প্রসারিত পথে ফাঁকা স্থান থাকে তবে তা উদ্ধৃতিতে আবৃত করা দরকার। উদাহরণস্বরূপ:xcopy "$(ProjectDir)Library\dsoframer.ocx" "$(TargetDir)" /Y /E /D1
গ্রান্ট থমাস

34

"আউটপুট" এ ঘড়ির ট্যাবটি স্যুইচ করুন এবং এক্সকপি কমান্ডটি সন্ধান করুন। কখনও কখনও এখানে আপনি আরও কিছু বার্তা পাবেন (আসল এক্সকপি আউটপুট) যা আপনাকে সমস্যাটি সমাধান করতে সহায়তা করতে পারে। যদি আপনি আউটপুট ট্যাবটি না দেখেন তবে এটি দেখানোর জন্য ভিউ-আউটপুট মেনু ব্যবহার করুন।


30

আমি স্বীকৃত উত্তর ছাড়াও গন্তব্য ফোল্ডারটি কেবল পঠনযোগ্য (টিএফএস ব্যবহার করার সময় সাধারণ) হয়ে গেলে ত্রুটিটিও ঘটতে পারে


2
এবং আপনি নীচে উল্লিখিত @FelicePollano হিসাবে আউটপুট উইন্ডোতে স্যুইচ করেছেন কিনা এমন কিছু আপনি দেখতে পাচ্ছেন।
জেদীদজ

20

যদি উত্স ফাইলটি না পাওয়া যায় তবে এক্সকপি ত্রুটি কোড 4 ও প্রদান করে।


3
এটা আমার ক্ষেত্রে ছিল। আমি ব্যবহার করে $(TargetDir)যা শেষ হয় Release\ $(ProjectDir)\bin\Releaseপিছনে ছাড়াই ব্যবহার করা \\ আমার পক্ষে কাজ করেছে
মাল্টিনার্ড

12

Xcopy কমান্ড একটি পঠনযোগ্য ফাইল ওভাররাইট করার চেষ্টা করার সময় আমি ' কোড 4 সহ প্রস্থানিত ' ত্রুটি পেয়েছি । আমি xcopy কমান্ডে / আর যোগ করে এই সমস্যাটি সমাধান করতে সক্ষম হয়েছি । / আর ইঙ্গিত দেয় কেবল পঠনযোগ্য ফাইলগুলি ওভাররাইট করা উচিত

পুরানো আদেশ:

XCOPY /E /Y "$(ProjectDir)source file" "destination"

নতুন কমান্ড

XCOPY /E /Y /R "$(ProjectDir)source file" "destination"

8

অন্যান্য উত্তরগুলি ব্যাখ্যা হিসাবে, প্রস্থান কোড 4 অনেকগুলি কারণ থাকতে পারে।

আমি একটি কেস লক্ষ্য করেছি, যেখানে ফলাফলের নামগুলি সর্বাধিক অনুমোদিত দৈর্ঘ্য ছাড়িয়েছে (ঠিক এখানেই )।

আমি ক্ষতিগ্রস্থ পোস্ট বিল্ড ইভেন্টের জন্য রোবকপি দ্বারা এক্সকপি প্রতিস্থাপন করেছি; রোবোকপি পাথগুলি কিছুটা পৃথকভাবে পরিচালনা করছে বলে মনে হয় এবং কপি টাস্কটি সম্পূর্ণ করতে সক্ষম হয়েছিল যা এক্সকপি হ্যান্ডেল করতে অক্ষম ছিল।


5

এর অর্থ :

প্রারম্ভিক ত্রুটি ঘটেছে। পর্যাপ্ত মেমরি বা ডিস্কের স্থান নেই, বা আপনি কমান্ড লাইনে একটি অবৈধ ড্রাইভের নাম বা অবৈধ সিনট্যাক্স প্রবেশ করেছেন।

সুতরাং মূলত এটি হাহা সম্পর্কে কিছু হতে পারে ... কমান্ড প্রম্পট থেকে একবারে কমান্ডটি চালানোর চেষ্টা করুন কোন আদেশটি কোন অংশটি আপনাকে সমস্যা দিচ্ছে তা নির্ধারণ করার জন্য।


3

আমি বার্তা সহ এটি পেয়েছিলাম

অবৈধ ড্রাইভ নির্দিষ্টকরণ

যখন ড্রাইভের নাম উল্লেখ না করে কোনও নেটওয়ার্ক শেয়ারে অনুলিপি করা হয়, যেমন

xcopy . \\localhost

কোথায়

xcopy . \\localhost\share

প্রত্যাশিত ছিল


2

আমি এই সমস্যাটি ছড়িয়ে দিয়েছি, সুতরাং আমি কমান্ড লাইন থেকে xcopy কমান্ডটি চালিয়েছি এবং এটি বলেছে:

File creation error - The requested operation cannot be performed on a file with
 a user-mapped section open.

এটি আসলে ভিজ্যুয়াল স্টুডিওর কোনও কিছুর উপরে ছিল। আমি কেবল ভিজ্যুয়াল স্টুডিও পুনরায় চালু করেছি এবং এটি কার্যকর হয়েছে।


1

আমার ক্ষেত্রে সমস্যাটি বিল্ড অর্ডারটির ভুল কারণে হয়েছিল। বিন ফোল্ডার থেকে অন্য ফোল্ডারে ফাইলগুলি অনুলিপি করতে একটি প্রকল্পের পোস্ট-বিল্ড ইভেন্টগুলিতে একটি এক্সকপি কমান্ড ছিল। তবে ভুল নির্ভরতার কারণে এক্স ফর্মটি প্রগতিতে থাকাকালীন নতুন ফোল্ডার বিন ফোল্ডারে তৈরি হচ্ছিল।

ভিএস-তে এমন প্রকল্পে ডান ক্লিক করুন যেখানে আপনার পোস্ট-বিল্ড ইভেন্ট রয়েছে। নির্ভরতা> প্রকল্প নির্ভরতা তৈরি করতে যান এবং এটি সঠিক কিনা তা নিশ্চিত করুন। পাশাপাশি প্রকল্প বিল্ড অর্ডার (নির্ভরতাগুলির পরবর্তী ট্যাব) যাচাই করুন।


1

আপনার রেপো অনুলিপি করা শ্বেত শূন্যস্থান থাকলে এই ত্রুটিটি ঘটে। উদাহরণস্বরূপ, আমার প্রকল্পটি নীচের স্থানে অনুলিপি করা হয়েছে c://projects/My rest project তবে আপনি সেখানে সাদা স্পেস দেখতে পাবেন, যদি আপনি আপনার রেপোটিকে নীচে পরিবর্তন করেন তবে এটি কাজ করা উচিত c://projects/myrestproject


0

আমারও একই সমস্যা ছিল। স্ল্যাশ কোন দিকে নির্দেশ করছে তা আপনিও পরীক্ষা করতে পারেন। আমার জন্য এটি ফরোয়ার্ড স্ল্যাশের পরিবর্তে ব্যাকস্ল্যাশ ব্যবহার করতে কাজ করেছে। উদাহরণ

xcopy /s /y "C:\SFML\bin\*.dll" "$(OutDir)"

পরিবর্তে:

xcopy /s /y "C:/SFML/bin/*.dll" "$(OutDir)"

0

আমার একটি পোস্ট বিল্ড কমান্ড ছিল যা ভিএস 2017 এ আপডেট করার আগে ঠিক কাজ করেছিল It এটি প্রমাণিত হয়েছিল যে এসডিকে সরঞ্জামগুলি আপডেট হয়েছিল এবং একটি নতুন পথে চলছে তাই এটি আমার সমাবেশগুলিতে সাইন করতে আমি যে সরঞ্জামটি ব্যবহার করছিলাম তা এটি খুঁজে পেল না।

এটি এ থেকে পরিবর্তন ...

call "%VS140COMNTOOLS%vsvars32"
    "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\x64\sn.exe" -Ra "$(TargetPath)" "$(ProjectDir)Key.snk"

এই ...

"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\sn.exe" -Ra "$(TargetPath)" "$(ProjectDir)Key.snk"

খুব সূক্ষ্ম তবে ব্রেকিং পরিবর্তন, সুতরাং আপনি যদি এই ত্রুটিটি দেখেন তবে আপডেটের পরে আপনার পাথগুলি পরীক্ষা করুন।


0

যেহেতু জন্য সতর্ক আরেকটি জিনিস, ডবল ব্যাকস্ল্যাশ হয় xcopyতাদের ইনপুট পথ প্যারামিটারে সহ্য না (কিন্তু এটা নেই আউটপুট পথে তাদের সহ্য ...)।

এখানে চিত্র বর্ণনা লিখুন


0

অন্য কোনও সমাধান যদি ডিবাগ মোডে থাকে তবে প্রথমে সেগুলি বন্ধ করুন এবং তার পরে ভিজ্যুয়াল স্টুডিও পুনরায় চালু করুন। এটা আমার জন্য কাজ করেছে।


0

লক্ষ্য ফোল্ডারটি অন্য কোনও প্রক্রিয়া দ্বারা ব্যবহার করা হলে এটিও আসতে পারে । লক্ষ্যযুক্ত ফোল্ডারটি ব্যবহার করতে পারে এবং চেষ্টা করতে পারে এমন সমস্ত প্রোগ্রাম বন্ধ করুন।

আপনার টার্গেট ফোল্ডারটি ব্যবহার করে এমন প্রক্রিয়াগুলি পরীক্ষা করতে আপনি রিসোর্স মনিটর (উইন্ডোজ সরঞ্জাম) ব্যবহার করতে পারেন।

এটি আমার পক্ষে কাজ করেছে!

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