এই ত্রুটি বার্তার অর্থ কী? এই সমস্যাটি সংশোধন করতে আমি কী করতে পারি?
এসেম্বলিআইএনফোস 9009 কোড সহ প্রস্থান করেছেন
সমস্যাটি সম্ভবত ভিজ্যুয়াল স্টুডিওর একটি .NET সমাধানের পোস্ট-বিল্ড পদক্ষেপের অংশ হিসাবে ঘটছে।
এই ত্রুটি বার্তার অর্থ কী? এই সমস্যাটি সংশোধন করতে আমি কী করতে পারি?
এসেম্বলিআইএনফোস 9009 কোড সহ প্রস্থান করেছেন
সমস্যাটি সম্ভবত ভিজ্যুয়াল স্টুডিওর একটি .NET সমাধানের পোস্ট-বিল্ড পদক্ষেপের অংশ হিসাবে ঘটছে।
উত্তর:
আপনি কি প্রাক-বা পোস্ট-বিল্ড ইভেন্ট কমান্ডে চলমান কমান্ডটির পুরো পথ দেওয়ার চেষ্টা করেছিলেন?
xcopy
ভিজ্যুয়াল স্টুডিও ২০০৮-এ পোস্ট-বিল্ড ইভেন্ট কমান্ডের কারণে আমি 9009 ত্রুটি পেয়েছিলাম ।
কমান্ডটি
"xcopy.exe /Y C:\projectpath\project.config C:\compilepath\"
9009 কোড সহ বেরিয়েছে।
তবে আমার ক্ষেত্রে এটিও মাঝে মাঝে ছিল। অর্থাত, ত্রুটি বার্তাটি কম্পিউটার পুনরায় চালু না হওয়া অবধি স্থায়ী থাকে এবং কম্পিউটার পুনরায় চালু হওয়ার পরে অদৃশ্য হয়ে যায়। এটি দূরবর্তীভাবে সম্পর্কিত কিছু সমস্যার পরে আমি এখনও আবিষ্কার করতে পারি না।
তবে, আমার ক্ষেত্রে কমান্ডটি সম্পূর্ণ পথ দিয়ে দেওয়ার ফলে সমস্যাটি সমাধান হয়েছে:
c:\windows\system32\xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
ন্যায়বিচারের পরিবর্তে:
xcopy.exe /Y C:\projectpath\project.config C:\compilepath\
আমার কাছে যদি পুরো পথ না থাকে তবে এটি পুনঃসূচনা করার পরে কিছুক্ষণ চলবে, এবং পরে থামবে।
এছাড়াও এই পোস্টে দেওয়া মন্তব্যে যেমন উল্লেখ করা হয়েছে, যদি পুরো পথে ফাঁকা স্থান থাকে, তবে কমান্ডের চারপাশে একজনের উদ্ধৃতি চিহ্নের প্রয়োজন । যেমন
"C:\The folder with spaces\ABCDEF\xcopy.exe" /Y C:\projectpath\project.config C:\compilepath\
নোট করুন যে স্পেসের সাথে সম্পর্কিত এই উদাহরণটি পরীক্ষা করা হয়নি।
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
) এটি সমাধান করেছে।
PATH
পরিবেশের পরিবর্তনশীল কোনওরকমভাবে হারিয়ে যাওয়ার সম্ভাবনা কি ? আমি এই ত্রুটিটি এখনই পরে এবং পরে পেয়েছি। আমার npm install
একটি প্রাক-বিল্ড ইভেন্ট হিসাবে সেটআপ আছে , এবং প্রাথমিকভাবে এটি কাজ করে (তাই আমি ধারণা করি যে সবকিছু সেটআপ রয়েছে) তবে তবে এলোমেলোভাবে এটি দিনের বেলা কাজ করা বন্ধ করবে (সাধারণত আমি যখন বিশ্বাস করি / সমাধানের শাখাগুলির মধ্যে স্যুইচ করে যা আমি বিশ্বাস করি), এবং এটি আর থাকবে না সম্পর্কে জানুন npm
। ভিএস পুনরায় আরম্ভ করা হচ্ছে এটি 'ঠিক করে' ... এর অর্থ আমার PATH
সঠিকভাবে সেটআপ হয়েছে তবে ভিএস-এর কাছে পাওয়া যাচ্ছে বলে মনে হচ্ছে। ভিএস এর ভিতরে থেকে এনভ ভেরিয়েবলগুলি দেখার কোনও উপায় থাকলে আমি এটি নিশ্চিত করতে পারতাম।
%systemroot%\System32\xcopy ...
ত্রুটি কোড 9009 এর অর্থ ত্রুটি ফাইলটি পাওয়া যায় নি। এখানে উত্তরগুলিতে পোস্ট করা সমস্ত অন্তর্নিহিত কারণগুলি তা বোঝার জন্য ভাল অনুপ্রেরণা, তবে ত্রুটিটি কেবল একটি সহজ পথ বোঝায়।
আপনি যখন মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও x86 সরঞ্জামগুলি ব্যবহার করার জন্য কিছু পরিবেশ সেটিংস মিস করছেন তখন এটি ঘটে।
অতএব, আপনার পোস্ট-বিল্ড পদক্ষেপগুলিতে প্রথম কমান্ড হিসাবে যুক্ত করার চেষ্টা করুন:
ভিজুয়াল স্টুডিও 2010 এর জন্য:
call "$(DevEnvDir)..\Tools\vsvars32.bat"
@ ফ্লোরিয়ানকোচ মন্তব্যে উল্লিখিত হিসাবে, ভিএস 2017 ব্যবহারের জন্য:
call "$(DevEnvDir)..\Tools\VsDevCmd.bat"
এটি অন্য কোনও কমান্ডের আগে স্থাপন করা উচিত।
এটি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও x86 সরঞ্জামগুলি ব্যবহারের জন্য পরিবেশ নির্ধারণ করবে।
call "$(DevEnvDir)..\Tools\vsvars32.bat"
? ধন্যবাদ
Path
পরিবেশের পরিবর্তনশীলটিতে আমাকে একটি এন্ট্রি যুক্ত করতে হয়েছিল । আরও তথ্যের জন্য আউটপুট উইন্ডো চেক করুন।
"$(DevEnvDir)..\Tools\VsDevCmd.bat"
আপনার ফলস্বরূপ পথে সম্ভবত আপনার স্থান রয়েছে।
আপনি পাথের উদ্ধৃতি দিয়ে এর আশেপাশে কাজ করতে পারেন, এভাবে জায়গাগুলির অনুমতি দেয়। উদাহরণ স্বরূপ:
xcopy "$(SolutionDir)\Folder Name\File To Copy.ext" "$(TargetDir)" /R /Y /I
উইন in-তে পরিবেশগত ভেরিয়েবলগুলি থেকে PATH ভেরিয়েবল পরিবর্তন করার পরে একই পরিবর্তনশীল ছিল default
আমার পোস্ট বিল্ড ইভেন্ট স্ক্রিপ্টটি যখন নির্দিষ্ট পথে অস্তিত্বহীন একটি ব্যাচ ফাইল চালানোর চেষ্টা করছিল তখন আমার 9009 ত্রুটি হয়েছিল।
আমি যখন আমার পথের পরিবেশের পরিবর্তনশীলটিকে পুনঃনির্দেশিত করি তখন আমি এই ত্রুটি ঘটায়। সম্পাদনার পরে, আমি ঘটনাক্রমে Path=
পথের স্ট্রিংয়ের শুরুতে যুক্ত করেছি । এই ধরনের একটি ত্রুটিযুক্ত পাথ ভেরিয়েবলের সাহায্যে আমি কমান্ড লাইনে XCopy চালাতে অক্ষম (কোনও কমান্ড বা ফাইল খুঁজে পাওয়া যায়নি), এবং ভিজুয়াল স্টুডিও 9009 কোড সহ ত্রুটি উল্লেখ করে পোস্ট-বিল্ড স্টেপ চালাতে অস্বীকার করেছিল।
এক্সকপি সাধারণত সি: \ উইন্ডোজ \ সিস্টেম 32 এ থাকে। একবার প্যাথ এনভায়রনমেন্ট ভেরিয়েবল এক্সসিপিটিকে ডস প্রম্পটে সমাধান করার অনুমতি দিলে ভিজ্যুয়াল স্টুডিও আমার সমাধানটি ভালভাবে তৈরি করে।
আমার সঠিক ত্রুটি ছিল
The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.
9009 মানে ফাইল পাওয়া যায় নি, তবে এটি আসলে কমান্ডের "iscc" অংশটি খুঁজে পেল না।
আমি ";C:\Program Files\Inno Setup 5 (x86)\"
সিস্টেম এনভায়রনমেন্ট ভেরিয়েবল যুক্ত করে এটি ঠিক করেছি"path"
বানানটি পরীক্ষা করুন। আমি এক্সিকিউটেবলকে কল করার চেষ্টা করছিলাম কিন্তু নামটি ভুল বানানযুক্ত ছিল এবং এটি আমাকে exited with code 9009
বার্তা দিয়েছে ।
আমার ক্ষেত্রে কমান্ড কল করার আগে আমাকে প্রথমে যথাযথ ডিরেক্টরিতে "সিডি" (চেঞ্জ ডিরেক্টরি) করতে হয়েছিল, যেহেতু যে এক্সিকিউটেবলকে আমি কল করছিলাম তা আমার প্রকল্প ডিরেক্টরিতে ছিল।
উদাহরণ:
cd "$(SolutionDir)"
call "$(SolutionDir)build.bat"
অন্য রূপ:
আজ আমি উইন32-এ ক্রোন থেকে পাইথন ইন্টারপ্রেটারকে কল করি এবং এক্সিটকোড (% ERRORLEVEL%) 9009 নিই, কারণ ক্রোন দ্বারা ব্যবহৃত সিস্টেম অ্যাকাউন্টে পাইথন ডিরেক্টরিতে পাথ নেই।
আমার টেস্ট ক্লাস লাইব্রেরিতে পোস্ট-বিল্ড ইভেন্টের জন্য কমান্ড-লাইনে একটি কমান্ড ব্যবহার করার চেষ্টা করার পরে আমার ক্ষেত্রে সমস্যাটি দেখা দিয়েছে। আপনি যখন উদ্ধৃতি চিহ্নগুলি ব্যবহার করেন:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit" "$(TargetPath)"
বা যদি আপনি কনসোল ব্যবহার করছেন:
"$(SolutionDir)\packages\NUnit.Runners.2.6.2\tools\nunit-console" "$(TargetPath)"
এটি আমার জন্য সমস্যাটি স্থির করেছে।
টিফএর উত্তরটি নিম্নচাপিত হয়েছে, তবে বাস্তবে এই সমস্যাটি ঘটতে পারে। হাঞ্জোলোকে ধন্যবাদ, আমি আউটপুট উইন্ডোটিতে তাকালাম এবং নিম্নলিখিতটি পেয়েছি:
3>'gulp' is not recognized as an internal or external command,
3>operable program or batch file.
3>D:\dev\<filepath>\Web.csproj(4,5): error MSB3073: The command "gulp clean" exited with code 9009.
দৌড়ানোর পরে npm install -g gulp
, আমি এই ত্রুটি পাওয়া বন্ধ করে দিয়েছি। আপনি যদি ভিজ্যুয়াল স্টুডিওতে এই ত্রুটিটি পেয়ে থাকেন তবে আউটপুট উইন্ডোটি পরীক্ষা করে দেখুন এবং সমস্যাটি কোনও আনসেট পরিবেশের পরিবর্তনশীল কিনা তা দেখুন।
এছাড়াও, আপনার প্রকল্পে পোস্ট বিল্ড ইভেন্ট সম্পাদনা উইন্ডোতে কোনও লাইন ব্রেক নেই তা নিশ্চিত করুন। কখনও কখনও এক্স-কপি কমান্ডটি ওয়েব থেকে বহু-লাইনে অনুলিপি করা এবং ভিএস-এ এটি আটকানো সমস্যার কারণ হতে পারে।
আমার জন্য এটি একটি বড় সমাধান (one 80 প্রজেক্ট) এর একটি পোস্টশার্প সংস্করণ থেকে পরের একটিতে নুগেট প্যাকেজগুলি আপগ্রেড করার পরে ঘটেছিল। প্রি বিল্ড ইভেন্টগুলিতে কমান্ড রয়েছে এমন প্রকল্পগুলির জন্য আমি সংকলক ত্রুটি পেয়েছি।
'সেমিডি' কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল প্রোগ্রাম বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়। সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ এমএস বিল্ড \ 14.0 \ বিন \ মাইক্রোসফট.কমন.কর্নিয়ার ভার্সন.টারজেটস (1249,5): ত্রুটি এমএসবি 3073: কমান্ড "সেমিডি / সি সি: it গিটারপোস \ প্রধান \ সার্ভিস ইন্টারফেসস \ ডিইভি.কনফিগ \ প্রি বিল্ড.সিএমডি সার্ভিস ইন্টারফেসস "9009 কোড সহ প্রস্থান করা হয়েছে।
পোস্টশার্প.প্যাটার্নস.ডায়াগনস্টিক সম্পর্কিত একাধিক পুনরাবৃত্ত পাথের সাথে PATH ভেরিয়েবলটি দীর্ঘ দীর্ঘ হয়ে গেছে। আমি যখন ভিজ্যুয়াল স্টুডিওটি বন্ধ করে দিয়ে আবার খুললাম তখন সমস্যাটি ঠিক হয়ে গেল।
তবুও পথের জায়গাগুলির কারণে ফাইলের আরও একটি রূপ পাওয়া যায় নি। আমার ক্ষেত্রে মিসবিল্ড স্ক্রিপ্টে। আমার এইচটিএমএল স্টাইল ব্যবহার করা দরকার & quot; এক্সিকিউট কমান্ডের মধ্যে স্ট্রিং।
<!-- Needs quotes example with my Buildscript.msbuild file -->
<Exec Command=""$(MSBuildThisFileDirectory)\wix\wixscript.bat" $(VersionNumber) $(VersionNumberShort)"
ContinueOnError="false"
IgnoreExitCode="false"
WorkingDirectory="$(MSBuildProjectDirectory)\wix" />
অন্যান্য উত্তর হিসাবে একই, আমার ক্ষেত্রে এটি ফাইল অনুপস্থিত কারণ ছিল। অনুপস্থিত ফাইলটি কী তা জানার জন্য, আপনি আউটপুট উইন্ডোতে যেতে পারেন এবং এটি নিখোঁজ হয়ে যাবে যা আপনাকে সরাসরি দেখাবে।
ভিজ্যুয়াল স্টুডিওতে আউটপুট উইন্ডো খুলতে:
আমি কেবল ভিজ্যুয়াল স্টুডিওটি পুনরায় চালু করে এটি সংশোধন করেছি - আমি সবেমাত্র dotnet tool install xxx
একটি কনসোল উইন্ডোতে চালিত করেছি এবং ভিএস এখনও পরিবর্তিত হওয়া নতুন পরিবেশের ভেরিয়েবল এবং / অথবা পাথ সেটিংস তুলেনি, তাই দ্রুত পুনঃসূচনাটি সমস্যার সমাধান করেছে।
এটি বেশ বেসিক, আমার এই সমস্যা ছিল এবং বিব্রতকর সরল ব্যর্থতা।
অ্যাপ্লিকেশন কমান্ড লাইনের যুক্তিগুলি ব্যবহার করে, আমি সেগুলি সরিয়েছি এবং তারপরে তাদের আবার যুক্ত করেছি। হঠাৎ করে প্রকল্পটি নির্মাণে ব্যর্থ হয়েছিল।
ভিজ্যুয়াল স্টুডিও -> প্রকল্পের বৈশিষ্ট্য -> যাচাই করুন যে আপনি 'ডিবাগ' ট্যাবটি ব্যবহার করেন ('ইভেন্টগুলি তৈরি করুন' ট্যাব নয়) -> কমান্ড লাইন আর্গুমেন্টগুলি
আমি এবং পোস্ট / প্রাক-বিল্ড পাঠ্য অঞ্চলটি ব্যবহার করেছি, যা এই ক্ষেত্রে ভুল ছিল।
আমার সমাধানটি ঠিক তেমন সহজ ছিল: আপনি কি এটি আবার বন্ধ করার চেষ্টা করেছেন? সুতরাং আমি কম্পিউটারটি পুনরায় চালু করলাম এবং সমস্যাটি শেষ হয়ে গেল।
9009
ওভাররাইটের পরিস্থিতির মুখোমুখি হয়ে আমিও এই সমস্যার মধ্যে পড়েছিলাম ।
মূলত, যদি ফাইলটি ইতিমধ্যে বিদ্যমান থাকে এবং আপনি যদি /y
স্যুইচটি নির্দিষ্ট না করেন (যা স্বয়ংক্রিয়ভাবে ওভাররাইট হয়) কোনও বিল্ড থেকে চালানোর সময় এই ত্রুটিটি ঘটতে পারে।
কমপক্ষে ভিজ্যুয়াল স্টুডিও আলটিমেট ২০১৩, সংস্করণ 12.0.30723.00 আপডেট 3 এ লাইন ব্রেক সহ একটি / অন্য বিবৃতি পৃথক করা সম্ভব নয়:
কাজ করে:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local) else (echo server)
কাজ করে না:
if '$(BuildingInsideVisualStudio)' == 'true' (echo local)
else (echo server)
তবুও অন্য কারণ: যদি আপনার প্রাক-বিল্ড ইভেন্টটি অন্য প্রকল্পের বিন পথের উল্লেখ করে এবং আপনি যদি এমসবিল্ড চলাকালীন এই ত্রুটিটি দেখতে পান তবে ভিজ্যুয়াল স্টুডিওতে নয়, তবে আপনাকে ম্যানুয়ালি প্রজেক্টগুলি * .sln ফাইলে সাজিয়ে নিতে হবে (একটি পাঠ্য সম্পাদক দিয়ে) সুতরাং আপনি ইভেন্টটিতে যে প্রকল্পটি লক্ষ্য করছেন সেটি ইভেন্টের প্রকল্পের আগে তৈরি। অন্য কথায়, এমএসবিল্ড সেই আদেশ ব্যবহার করে যা প্রকল্পগুলিকে * .sln ফাইলের তালিকাভুক্ত করা হয় যেখানে ভিএস প্রকল্প নির্ভরতার জ্ঞান ব্যবহার করে। আমার যখন এটি ঘটেছিল যখন উইক্সপ্রজের অন্তর্ভুক্ত ডেটাবেস তৈরি করা একটি সরঞ্জাম উইক্সপ্রজের পরে তালিকাভুক্ত করা হয়েছিল।
আমি মনে করি আমার ক্ষেত্রে রাশিয়ান প্রতীকগুলি ছিল (সমস্ত প্রকল্পগুলি ব্যবহারকারী ফোল্ডারে ছিল)। আমি যখন অন্য ফোল্ডারে সমাধান করি (সরাসরি ডিস্কে), তখন সবকিছু ঠিক হয়ে যায়।
আমার সমাধানটি ছিল ফাইলটির একটি অনুলিপি তৈরি করা এবং বিল্ড টাস্কে আমার ফাইলটি মূলটির সাথে অনুলিপি করার জন্য একটি পদক্ষেপ যুক্ত করা।