ভিজুয়াল স্টুডিওর মধ্যে বিন এবং আপত্তি ফোল্ডারগুলি কীভাবে সম্পূর্ণ পরিষ্কার করবেন?


96

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


উত্তর:


105

অন্যরা ইতিমধ্যে সাড়া ফেলেছে বলে ক্লিন বিল্ড দ্বারা উত্পন্ন সমস্ত শিল্পকর্ম সরিয়ে দেবে। তবে এটি সমস্ত কিছু পিছনে ফেলে দেবে।

আপনার এমএসবিল্ড প্রকল্পে যদি আপনার কিছু কাস্টমাইজেশন থাকে তবে এটি সমস্যাটি বানান করতে পারে এবং আপনার জিনিসগুলি মুছে ফেলা উচিত বলে মনে করতে পারে।

আপনার এক সাধারণ পরিবর্তনের মাধ্যমে আপনি এই সমস্যাটি সমাধান করতে পারেন *

<Target Name="SpicNSpan"
        AfterTargets="Clean">
    <RemoveDir Directories="$(OUTDIR)"/>
</Target>

যা আপনার বর্তমান প্ল্যাটফর্ম / কনফিগারেশনের বিন ফোল্ডারের সমস্ত কিছু সরিয়ে ফেলবে।

------ নীচে শামানের উত্তরের ভিত্তিতে সামান্য বিবর্তন সম্পাদনা করুন (ভোট ভাগ করুন এবং তাকে কিছু দিন)

<Target Name="SpicNSpan"  AfterTargets="Clean">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

---- এক্সডিজার্টরের অংশগুলির সাথে আবার সম্পাদনা করুন তবে আমি .vs মুছে ফেলা সরিয়েছি কারণ এটি একটি .gitignore (বা সমমানের) এ আরও ভাল পরিবেশন করা হবে

ভিএস 2015 এর জন্য আপডেট হয়েছে।

<Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
     <RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
     <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
</Target>

আপনার যদি এটিতে ধাক্কা দেওয়ার মতো একাধিক প্রকল্প থাকে তবে কাজটি মোতায়েন করা ও বজায় রাখা সহজতর করার বিষয়েও তিনি একটি ভাল পরামর্শ দিয়েছেন।

আপনি যদি এই উত্তরটি ভোট দেন তবে তাদের উভয়কেও ভোট দিতে ভুলবেন না।


17
এটি সেরা সমাধান, কাজ করে, বিশেষ সরঞ্জামের প্রয়োজন হয় না এবং প্রতিটি দল সদস্য একই "পরিষ্কার" পদ্ধতি ব্যবহার করে তা নিশ্চিত করে। এমএস ভিজ্যুয়াল স্টুডিও কেন সঠিকভাবে পরিষ্কার হয় না তা আমার কাছে সম্পূর্ণ রহস্য।
রোল্ফ

4
বাস্তবায়নের এটি এখন পর্যন্ত সবচেয়ে সহজ সমাধান এবং কোনও বাহ্যিক প্লাগইন ছাড়াই কাজটি সম্পন্ন করে
tomoguisuru

কীভাবে এই লক্ষ্যটিকে সক্রিয় / কল করবেন তা নিশ্চিত নন। কেবল 'ক্লিন' বাছাই করা কিছু করার জন্য উপস্থিত হয় না। তাহলে আমি কীভাবে এটি ব্যবহার করব?
এলিসেরআনসবায়েক

দুঃখিত এখন আপনার মন্তব্য দেখেছি। আফটার টার্গেটস = "ক্লিন" উল্লেখ করা ভিজ্যুয়ালস্টুডিওর জন্য অভ্যন্তরীণ পরিষ্কার লক্ষ্যকে লক্ষ্য করে। তবে এই সাধারণ লক্ষ্যটি কনসোলে কোনও ফিডব্যাকো সরবরাহ করে না তাই এটি আপনার $ (OUTDIR) কে অস্তিত্ব থেকে মুছে ফেলা ব্যতীত আর কিছুই করবে না। আপনি এতে কিছু ত্রুটি পরিচালনা এবং বার্তা যুক্ত করতে পারেন এবং আরও ভাল প্রতিক্রিয়া পেতে পারেন।
নিউটোপিয়ান

4
@ রলফ ভিজ্যুয়াল স্টুডিও ডিফল্টরূপে "সঠিকভাবে" পরিষ্কার করে না কারণ এমএসকে এমন ব্যবহারের ক্ষেত্রে সমর্থন করতে হবে যেখানে এন বিভিন্ন প্রকল্প একই ডিরেক্টরিতে আউটপুট দেয়। যদি কোনও প্রকল্প সাফ করা ডিফল্টরূপে তার সম্পূর্ণ আউটপুট ডিরেক্টরিকে ক্লোবার্ব করে, তবে এটি ক্লোবার ফাইলগুলি সম্পূর্ণরূপে এই প্রকল্পের সাথে সম্পর্কিত নয়। সুতরাং পরিবর্তে ডিফল্ট আচরণ হ'ল বিল্ড প্রক্রিয়া দ্বারা প্রকৃতপক্ষে আউটপুট হওয়া ফাইলগুলির ট্র্যাক রাখা এবং কেবল সেই ফাইলগুলিকে পরিষ্কার করা মুছুন। এমএসবাইল্ডকে ট্র্যাকিং তালিকায় যুক্ত না করে নির্মানের সময় একটি ফাইল তৈরি বা অনুলিপি করে পরিষ্কার সময়ে ভাঙ্গার একটি সাধারণ শ্রেণির সৃষ্টি হয়।
টিম্বো

45

আপনি যদি গিট ব্যবহার করছেন .gitignoreএবং আপনার প্রকল্পে কোনও সঠিক থাকে তবে আপনি এটি করতে পারেন

git clean -xdf --dry-run

.gitignoreতালিকার প্রতিটি ফাইল একেবারে মুছে ফেলতে , অর্থাৎ এটি পরিষ্কার হয়ে যাবে objএবং binফোল্ডারগুলি ( xএই আচরণকে ট্রিগার করে)


4
এটি সুন্দরভাবে কাজ করে। যখন আপনি কেবল একটি ভিজ্যুয়াল স্টুডিও প্রকল্পের পরিবর্তে প্রশস্ত সমাধান করতে চান তখন খুব সুবিধাজনক
এহতেশ চৌধুরী

@ জোএইলি প্রথমে পরিষ্কার এবং তারপরে জিপ করার পদক্ষেপে , রেপো থেকে সরাসরি জিপ করতে গিট-সংরক্ষণাগার ব্যবহার করা আরও সহজ হতে পারে ।
রেইনিয়ার টোরেনবিক

একটি যাদুমন্ত্র মত কাজ করে! এটি সেরা উত্তর। এছাড়াও, যদি ধরা যাক যে প্রকল্পটি সোর্স নিয়ন্ত্রণ ব্যবহার করছে না, তবে এই উত্তরটি এখনও প্রযোজ্য: কেবলমাত্র প্রকল্পটি উত্স নিয়ন্ত্রণে যুক্ত করুন (সমাধানের নামটিতে ডান ক্লিক করুন), তারপরে উপরের গিট কমান্ডটি চালান। বিটিডব্লিউ, উইন্ডোজে আপনি কীভাবে গিট কমান্ড ব্যবহার করবেন? উইন্ডোতে আমাকে উবুন্টুতে ব্যাশ ব্যবহার করতে হয়েছিল।
ব্রেট

@ ব্রেট আকর্ষণীয়;) আমি সাধারণত উইন্ডোজ প্রশস্ত করার জন্য গিটহাব ব্যবহার করি (যদিও আমি নিশ্চিত যে ভিএস ভিএস কমান্ড প্রম্পট থেকে ব্যবহার করা যেতে পারে এমন একটি ওয়ার্ক রিগ ইনস্টল করে) - সেটিংস আপনাকে শেল বিন্যাসটি নির্বাচন করতে দেয় (যা থেকে আমি পশগিট নির্বাচন করি) । ডাব্লুএসএল ব্যবহার করা সর্বাধিক শিক্ষাগত, তাই ভাল কল!
রুবেন বারটেলিংক

4
ঠিক আছে. এখন আমি দেখি; কীটি হ'ল --dry-runএটি আপনাকে কেবল মুছে ফেলা হবে বলে দেবে। সুন্দর
এম কে বি

42

ভিজ্যুয়াল স্টুডিও 2015 এর জন্য এমএসবিল্ড ভেরিয়েবলগুলি কিছুটা বদলেছে:

  <Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
         <RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
         <RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs -->
         <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
  </Target>

লক্ষ্য করুন যে এই স্নিপেটটি আপনার সমাধানের মূল ডিরেক্টরি থেকে .vs ফোল্ডারটিও মুছে ফেলে। আপনি যদি মনে করেন যে .vs ফোল্ডারটি মুছে ফেলা একটি ওভারকিল বলে মনে হয় তবে আপনি এই সম্পর্কিত লাইনটি মন্তব্য করতে চাইতে পারেন। আমি এটি সক্ষম করেছি কারণ আমি লক্ষ্য করেছি যে কিছু তৃতীয় পক্ষের প্রকল্পগুলিতে এটি ফাইলগুলির ক্ষেত্রে সমস্যা সৃষ্টি করে যখন ফাইলগুলি .vs ফোল্ডারের ভিতরে অ্যাপ্লিকেশন কোডফাইগ বিদ্যমান থাকে।

সংযোজন:

আপনি যদি নিজের সমাধানগুলির রক্ষণাবেক্ষণের অনুকূলতা বজায় রাখেন তবে আপনি জিনিসগুলি আরও একধাপ এগিয়ে নিয়ে যেতে চাইতে পারেন এবং উপরের স্নিপেটটি আলাদা ফাইলের মতো রাখতে পারেন:

  <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
       <Target Name="SpicNSpan" AfterTargets="Clean"> <!-- common vars https://msdn.microsoft.com/en-us/library/c02as0cs.aspx?f=255&MSPPError=-2147217396 -->
            <RemoveDir Directories="$(TargetDir)" /> <!-- bin -->
            <RemoveDir Directories="$(SolutionDir).vs" /> <!-- .vs -->
            <RemoveDir Directories="$(ProjectDir)$(BaseIntermediateOutputPath)" /> <!-- obj -->
       </Target>
  </Project>

এবং তারপরে আপনার প্রতিটি * .csproj ফাইলের একেবারে শেষে এই ফাইলটি অন্তর্ভুক্ত করুন:

     [...]
     <Import Project="..\..\Tools\ExtraCleanup.targets"/>
  </Project>

আপনি যখন কোনও উন্নতি করতে চান প্রতিবার হাতের দ্বারা প্রতিটি * .csproj ফাইল সম্পাদনা করার ব্যথা ব্যতীত এক জায়গায় আপনি নিজের অতিরিক্ত-ক্লিনআপ-যুক্তিকে সমৃদ্ধ বা সূক্ষ্ম-সুর করতে পারেন।


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

4
@progLearner অবশ্যই শুনব আছে stackoverflow.com/a/10019708/863651
XDS

অসাধারণ! ধন্যবাদ!
প্রগ্লিয়ার্নার

4
উত্তর কিছু ফাইল এখনও লক করা আছে বলে মনে হয় যদি আমরা 2 বা 3 বার স্থায়ী হয় তবে সেগুলি মুছে ফেলা হবে। তারপরে এমন কিছু ঘটনা রয়েছে যেখানে ফাইলগুলি সত্যই লক হয়ে যায় এবং তারপরে আপনি ভাগ্য থেকে দূরে থাকবেন কারণ আপনি এগুলি মুছে ফেলতে পারবেন না যতক্ষণ না আপনি এগুলি লক করা প্রক্রিয়াগুলি না মেরে। আপনি যদি পরিস্থিতি # 1 এ থাকেন তবে আপনি সর্বশেষতম এমএসবাইল্ডকমিনিটিটিস্ক থেকে মুছে ফেলা ডিরেক্টরিগুলি অ্যাক্সেস করতে পারেন যার ফলস্বরূপ-মোছা পতাকা রয়েছে (আপনি এটিতে ডকসটি পড়তে পারেন কারণ এটি এই নির্দিষ্ট থ্রেডের বাইরে নয়)
এক্সডিএস

4
আমারও একই সমস্যা ছিল। পটভূমিতে একটি প্রক্রিয়া চলছে যার নাম VSCompiler.exe বা সেই প্রভাবের কিছু। ডিরেক্টরিটি মোছার আগে আপনি প্রথমে এই প্রক্রিয়াটি হত্যার চেষ্টা করতে পারেন এবং এটি কাজ করে কিনা তা দেখুন (আমার মনে হয় এটি হবে)। শুভকামনা সাথী!
এক্সডিএস

31

বিল্ড করার আগে প্রজেক্ট ফাইলটিতে অ্যাড এবং বিনটিকে মুছতে:

<Target Name="BeforeBuild">
    <!-- Remove obj folder -->
    <RemoveDir Directories="$(BaseIntermediateOutputPath)" />
    <!-- Remove bin folder -->
    <RemoveDir Directories="$(BaseOutputPath)" />
</Target>

নিবন্ধটি এখানে: বিল্ড বা মোতায়েনের পূর্বে বিন এবং / অথবা অবজেক্ট ফোল্ডারটি কীভাবে সরিয়ে ফেলা যায়


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

22

এই সাইটটি: https://sachabarbs.wordpress.com/2014/10/24/powershell-to-clean-visual-studio-binobj-folders/ বর্তমান ডিরেক্টরি থেকে কোনও বিন এবং অবজেক্ট ফোল্ডারগুলি সরাতে উইলিয়াম কেম্পের পাওয়ারশেল কমান্ড ব্যবহার করে এবং সাব ডিরেক্টরি। এটি ড্রাইভের মূল থেকে চালানো সম্ভব হবে।

এখানে উইলিয়ামের সংস্করণ

 gci -inc bin,obj -rec | rm -rec -force

উইলিয়ামের নিজস্ব কথায়:

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

আপনারা যারা পড়েন তাদের জানা নেই, পাওয়ারশেল কমান্ড এলিয়াসগুলিকে সমর্থন করে, এখানে এটি আবার এলিয়াস ব্যবহার না করে আবার লেখা হয়েছে

Get-ChildItem -inc bin,obj -rec | Remove-Item -rec -force

দ্রষ্টব্য: আপনার এটি পাওয়ারশেল ফাইলে সংরক্ষণ করা উচিত এবং সেই ফাইলটি আপনার সমাধানের মূলে রাখা উচিত (যেখানে .sln ফাইলটি বাস করে) এবং তারপরে আপনি যখন কোনও সঠিক পরিষ্কার চান (ভিজুয়ালস্টুডিও যা করেন এমন মিক মাউস নয়, এবং সাফল্যের রিপোর্টও করে)।


সচেতন থাকুন যে আপনি যদি কোনও সংস্করণ নিয়ন্ত্রণ সিস্টেম যেমন মার্উরিয়াল ব্যবহার করেন এবং এটি এই স্ক্রিপ্টের মতো একই ডিরেক্টরি স্তরে থাকে তবে আপনি যদি "বিন" ফোল্ডারের ভিতরে কিছু সংরক্ষণ করেন তবে এই স্ক্রিপ্টটি আপনার সংগ্রহস্থলকে দূষিত করবে ... অন্যথায় এটি খুব দরকারী স্ক্রিপ্ট!
লাউডেনভিয়ার


4

আপনি খুব সহজেই ম্যানেজারে বিন এবং আপত্তি ফোল্ডারগুলি সন্ধান করতে এবং অপসারণ করতে পারেন ।

  1. আপনার সমাধানে নেভিগেট করুন এবং Alt + F7 টিপুন
  2. অনুসন্ধান সেটিং কথোপকথনে:

    • "বিন, আপত্তি" টাইপ করুনফিল্ডে একটি ফাইল মাস্ক বা বেশ কয়েকটি ফাইলের মুখোশ"
    • বিকল্প পরীক্ষা করুন"ফোল্ডারগুলির জন্য অনুসন্ধান"
    • এন্টার চাপুন
  3. অনুসন্ধান শেষ হওয়ার পরে, "প্যানেলে" ভিউ স্যুইচ করুন

  4. সমস্ত ফাইল নির্বাচন করুন (সিটিআরএল + এ সহ) এবং ফোল্ডারগুলি মুছুন ("শিফট + ডেল" টিপুন)

আশা করি এটি কাউকে সাহায্য করবে।


4
এ ম্যানুয়ালি এফ এআর ম্যানেজারে এটি করা বন্ধ করার জন্য স্বয়ংক্রিয় সমাধানের সন্ধানের জন্য এই প্রশ্নটি গুগল করেছে
ভ্লাদ

3

উইন্ডোতে এক্সপ্লোরারটি আপনার এসএলএন ফোল্ডারে নেভিগেট খুলুন সন্ধান ক্ষেত্রটিতে ক্লিক করুন এবং টাইপ করুন : = ফোল্ডার; আপত্তি -> আইজেক্ট ফোল্ডারগুলির জন্য সিটিআরএল + এ ব্যবহার করুন এবং বিনের জন্য সমান 'মুছুন'

কোনও সরঞ্জাম বা অতিরিক্ত সফ্টওয়্যার প্রয়োজন নেই;)


2

এটি ফোল্ডারগুলি সরিয়ে দেয় না, তবে এটি বিল্ড বাই-প্রোডাক্টগুলি সরিয়ে দেয়। আপনি প্রকৃত বিল্ড ফোল্ডারগুলি মুছে ফেলতে চান এমন কোনও কারণ আছে ?


সংকলনের জন্য প্রয়োজনীয় নয় এমন সমস্ত জিনিস আমি মুছে ফেলতে চাই যাতে আমি এটি জিপ করে পাঠাতে পারি। জিপ ফাইলগুলিতে .exes থাকা অ্যান্টি ভাইরাসগুলির জন্য সমস্যা হতে পারে।
tom7

হ্যাঁ. তবে আমি যেমন বলেছি, বিল্ড পণ্যগুলি সরানো হবে। তার মানে .obj এবং .exe ফাইল। কেবল আসল ফোল্ডারগুলি নয়।
ক্রিস্টোফার

যদি কিছু রেফারেন্স সরানো / সরানো হয় এবং dll এর কোডগুলিতে রেফারেন্স না পাওয়া যায় তবে সেগুলি আর বিন ফোল্ডারে তৈরি করা হয় না, তবে সেগুলিও পরিষ্কার করা হয় না। এটি আপনার অ্যাপ্লিকেশনটির স্থানীয় বনামে তৈরি হয় যা তৈরি হয় তবে অন্য কোথাও ব্যর্থ হয়।
অলি 4

2

ক্লিন বিল্ড প্রক্রিয়া দ্বারা নির্মিত সমস্ত মধ্যবর্তী এবং চূড়ান্ত ফাইলগুলি যেমন .obj ফাইল এবং .exe বা .dll ফাইলগুলি সরিয়ে ফেলবে।

এটি সেই ডিরেক্টরিগুলি সরিয়ে দেয় না যেখানে এই ফাইলগুলি নির্মিত হয়। আপনার ডিরেক্টরিগুলি অপসারণের জন্য কেন বাধ্যবাধকতা নেই তা দেখছি না। আপনি আরও ব্যাখ্যা করতে পারেন?

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


আমি সব কিছু জিপ করার জন্য বিন এবং ওজেক্ট ডিরেক্টরিগুলি সরাতে চাই।
tom7

4
"পরিষ্কার" .xe সরান না।
tom7

এটি আমার ভিজ্যুয়াল স্টুডিও ২০০ with দিয়ে কেবল ব্যবহার করে দেখেছি এবং আমি প্রমাণ করতে পারি যে "ক্লিন" .exe (এবং অন্যান্য সমস্ত ফাইল) সরিয়ে দিয়েছে।
অ্যাবেলেঙ্কি

4
ভিজ্যুয়াল স্টুডিও ২০১০-এ, সম্ভবত। এখনই, আমি নিশ্চিত করতে পারি যে একটি "ক্লিন সলিউশন" ডিবাগ / বিন ফোল্ডারগুলি থেকে dlls অপসারণ করে না।
কীথ হফম্যান

4
ক্লিন ফাইলগুলি বিল্ড দ্বারা গণনা করা না থাকলে মুছবে না। কিছু ফাইল যদি অন্য কোনও মেকানিজমের দ্বারা আউটডির ভ্রমণ করে তবে ক্লিন সেগুলি মুছবে না। অন্য কথায়, বিল্ড ম্যানেজারের টুপি পরে, পরিষ্কার সম্পূর্ণ এবং সম্পূর্ণরূপে অকেজো, বিপজ্জনক এমনকি।
নিউটোপিয়ান

2

আমি এখনও কোনও মন্তব্য যুক্ত করতে পারি না (কোনও নূন্যতম খ্যাতি পৌঁছায় না)
তাই আমি এই উত্তরটি নিম্নরেখার জন্য রেখেছি:

"বিফার বিল্ড" ক্রিয়াটি <RemoveDir Directories="$(BaseIntermediateOutputPath)" />দুর্দান্ত তবে আমার কাছে একই প্রকল্পের অন্তর্ভুক্ত একটি সত্তা ফ্রেমওয়ার্ক মডেলটির সাথে বিরোধী।

আমি প্রাপ্ত ত্রুটিটি হ'ল:

Error reading resource '{mymodel}.csdl' -- 'Could not find a part of the path '{myprojectpath}\obj\Release\edmxResourcesToEmbed\{mymodel}.csdl

আমি মনে করি, "বিডারবিল্ড" টার্গেট অ্যাকশন কার্যকর করার আগে "edmxResourceToe એમ્બેડ" তৈরি হয়েছিল।


2

জো উত্তরের ভিত্তিতে, আমি ভিবি কোডকে সি # তে রূপান্তর করেছি:

/// <summary>
/// Based on code of VSProjCleaner tool (C) 2005 Francesco Balena, Code Archirects
/// </summary>
static class VisualStudioCleaner
{
    public static void Process(string rootDir)
    {
        // Read all the folder names in the specified directory tree
        string[] dirNames = Directory.GetDirectories(rootDir, "*.*", SearchOption.AllDirectories);
        List<string> errorsList = new List<string>();

        // delete any .suo and csproj.user file
        foreach (string dir in dirNames) {
            var files = new List<string>();
            files.AddRange(Directory.GetFiles(dir, "*.suo"));
            files.AddRange(Directory.GetFiles(dir, "*.user"));
            foreach (string fileName in files) {
                try {
                    Console.Write("Deleting {0} ...", fileName);
                    File.Delete(fileName);
                    Console.WriteLine("DONE");
                } catch (Exception ex) {
                    Console.WriteLine();
                    Console.WriteLine(" ERROR: {0}", ex.Message);
                    errorsList.Add(fileName + ": " + ex.Message);
                }
            }
        }

        // Delete all the BIN and OBJ subdirectories
        foreach (string dir in dirNames) {
            string dirName = Path.GetFileName(dir).ToLower();
            if (dirName == "bin" || dirName == "obj") {
                try {
                    Console.Write("Deleting {0} ...", dir);
                    Directory.Delete(dir, true);
                    Console.WriteLine("DONE");
                } catch (Exception ex) {
                    Console.WriteLine();
                    Console.WriteLine(" ERROR: {0}", ex.Message);
                    errorsList.Add(dir + ": " + ex.Message);
                }
            }
        }
        Console.WriteLine(new string('-', 60));
        if (errorsList.Count == 0) {
            Console.WriteLine("All directories and files were removed successfully");
        } else {
            Console.WriteLine("{0} directories or directories couldn't be removed", errorsList.Count);
            Console.WriteLine(new string('-', 60));
            foreach (string msg in errorsList) {
                Console.WriteLine(msg);
            }
        }
    }
}

1

আমি ভিজ্যুয়ালস্টুডিও ক্লিন ব্যবহার করি যা বুঝতে সহজ এবং অনুমানযোগ্য। এটি কীভাবে কাজ করে এবং কোন ফাইলগুলি মুছে ফেলতে চলেছে তা আমাকে শিথিল করে।

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

উপসংহার: ভিজুয়ালস্টুডিও ক্লিন আপনি যদি বেসিক পরিষ্কার করতে চান তবে আরও জটিল দৃশ্যের জন্য ভিএসক্লিয়েন।


1

সমস্ত বিআইএন এবং ওবিজে ফোল্ডারগুলি পুনরাবৃত্তভাবে মোছার জন্য আমি এইভাবে ব্যাচ ফাইলটি করি।

  • একটি খালি ফাইল তৈরি করুন এবং এর নাম মুছুনবিনবজফোল্ডার্স.বাট
  • ডিলিটবিনবজফোল্ডার্স.বাটে নীচের কোডটি কপি-পেস্ট করুন
  • আপনার সমাধান (* .sln) ফাইলের সাথে একই ফোল্ডারে মুছুনবিনবজফোল্ডার্স.বাট ফাইলটি Move
@echo off
@echo Deleting all BIN and OBJ folders...
for /d /r . %%d in (bin,obj) do @if exist "%%d" rd /s/q "%%d"
@echo BIN and OBJ folders successfully deleted :) Close the window.
pause > nul

0

আমি শুধুমাত্র উত্স কোড সংরক্ষণ করে আমার সমাপ্ত ভিএস প্রকল্পগুলি সঞ্চয় করি।

আমি সমস্ত প্রকল্পের বিএন, ডিইবিইউজি, রিলিজ, ওবিজে, এআরএম এবং .vs ফোল্ডারগুলি মুছি।

এটি প্রকল্পের আকারকে যথেষ্ট হ্রাস করে। প্রকল্প

স্টোরেজ থেকে বের করার সময় অবশ্যই পুনর্নির্মাণ করতে হবে।


0

উপরের সমস্ত সূক্ষ্ম উত্তরের কেবলমাত্র একটি সংযোজন যদি কেউ বুঝতে না পারে যে ভিবি / সি # তে জিপ সংরক্ষণাগারটিতে সম্পূর্ণ প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে চালিত করা কতটা সহজ।

সুতরাং আপনি কেবলমাত্র টেমপ্লেটগুলি থেকে একটি সাধারণ ফর্ম অ্যাপ্লিকেশনটি ধরুন (যদি আপনার কাছে ইতিমধ্যে গৃহনির্মাণের অ্যাপ না থাকে) এবং এতে একটি বোতাম যুক্ত করুন এবং তারপরে ক্লিক করুন একবারে বিশেষ সেটিংস বা অনেক কিছু না ভেবে আপনার ডেস্কটপে এটি ইনস্টল করুন। এই বোতামের সাথে সংযুক্ত করার জন্য আপনার প্রয়োজনীয় সমস্ত কোড:

Imports System.IO.Compression

Private Sub btnArchive_Click(sender As Object, e As EventArgs) Handles btnArchive.Click
    Dim src As String = "C:\Project"
    Dim dest As String = Path.Combine("D:\Archive", "Stub" & Now.ToString("yyyyMMddHHmmss") & ".zip")
    If IsProjectOpen() Then 'You don't want Visual Studio holding a lock on anything while you're deleting folders
        MsgBox("Close projects first, (expletive deleted)", vbOKOnly)
        Exit Sub
    End If
    If MsgBox("Are you sure you want to delete bin and obj folders?", vbOKCancel) = DialogResult.Cancel Then Exit Sub
    If ClearBinAndObj(src) Then ZipFile.CreateFromDirectory(src, dest)
End Sub

Public Function ClearBinAndObj(targetDir As String) As Boolean
    Dim dirstodelete As New List(Of String)
    For Each d As String In My.Computer.FileSystem.GetDirectories(targetDir, FileIO.SearchOption.SearchAllSubDirectories, "bin")
        dirstodelete.Add(d)
    Next
    For Each d As String In My.Computer.FileSystem.GetDirectories(targetDir, FileIO.SearchOption.SearchAllSubDirectories, "obj")
        dirstodelete.Add(d)
    Next
    For Each d In dirstodelete
        Try
            Directory.Delete(d, True)
        Catch ex As Exception
            If MsgBox("Error: " & ex.Message & " - OK to continue?", vbOKCancel) = MsgBoxResult.Cancel Then Return False
        End Try
    Next
    Return True
End Function

Public Function IsProjectOpen()
    For Each clsProcess As Process In Process.GetProcesses()
        If clsProcess.ProcessName.Equals("devenv") Then Return True
    Next
    Return False
End Function

একটি জিনিস মনে রাখবেন ফাইল ফাইল মুছে ফেলা সহজেই ভুল হতে পারে। আমার পছন্দের একটি ছিল যখন আমি বুঝতে পারি যে আমি কোনও ফোল্ডার মুছতে পারছি না কারণ এতে ভিজ্যুয়াল স্টুডিওর তৈরি করা আইটেমগুলি এলিভেটেড সুবিধাগুলি দিয়ে চলার সময় রয়েছে (যাতে আমি কোনও পরিষেবা ডিবাগ করতে পারি)।

আমার ম্যানুয়ালি অনুমতি দেওয়ার দরকার ছিল বা, আমি মনে করি, অ্যাপটি উন্নত সুবিধাসমূহের সাথে চালানো দরকার। যে কোনও উপায়ে, আমি মনে করি কোনও স্ক্রিপ্টের উপর ইন্টারেক্টিভ জিইউআই-ভিত্তিক পদ্ধতির ব্যবহারের কিছু মূল্য রয়েছে, বিশেষত যেহেতু এটি সম্ভবত দীর্ঘ দিনের শেষে করা কিছু এবং পরে আপনি এটি খুঁজে নিতে চান না যে আপনার ব্যাকআপ আসলে অস্তিত্ব নেই ...


0

আপডেট: ভিজ্যুয়াল স্টুডিও 2019 (মুক্তির আগে পরিষ্কার [বিন] এবং [আপত্তি]) তবে [আপত্তি] মুছে ফেলার দরকার আছে কিনা তা আমি নিশ্চিত নই। সচেতন থাকুন নুগেট প্যাকেজ কনফিগারেশনটি খুব বেশি রাখা আছে। আপনি যদি মনে করেন তবে দ্বিতীয় লাইনটি সরিয়ে ফেলতে পারেন।

<Target Name="PreBuild" BeforeTargets="PreBuildEvent" Condition="'$(Configuration)' == 'Release'">
  <!--remove bin-->
  <Exec Command="rd /s /q &quot;$(ProjectDir)$(BaseOutputPath)&quot; &amp;&amp; ^" />
  <!--remove obj-->
  <Exec Command="rd /s /q &quot;$(BaseIntermediateOutputPath)Release&quot;" />
</Target>

0

এই উত্তরটি দুর্দান্ত আমি কেবল উত্তরের শেষ অংশে মন্তব্য করতে চাই

দ্রষ্টব্য: আপনার এটি পাওয়ারশেল ফাইলে সংরক্ষণ করা উচিত এবং সেই ফাইলটি আপনার সমাধানের মূলে রাখা উচিত (যেখানে .sln ফাইলটি বাস করে) এবং তারপরে আপনি যখন কোনও সঠিক পরিষ্কার চান (ভিজুয়ালস্টুডিও যা করেন এমন মিক মাউস নয়, এবং সাফল্যের রিপোর্টও করে)।

বিকল্পভাবে, আপনি নিজের প্রোফাইল.ps1 এ নিম্নলিখিতগুলি যুক্ত করতে পারেন

function CleanSolution {
    Get-ChildItem -inc bin,obj -rec | Remove-Item -rec -force
}

Set-Alias cs CleanSolution 

তারপরে আপনি ক্লিন সলিউশন বা সিএস চালাতে ব্যবহার করতে পারেন । এই পদ্ধতিতে আপনি কোনও প্রকল্পের জন্য এবং ফাইল নামের ./ উপসর্গ ছাড়াই এটি ব্যবহার করতে পারেন


0

ভিজ্যুয়াল স্টুডিও এক্সটেনশন

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

রাইট ক্লিক ক্লিক সলিউশন - "মুছে দিন বিন এবং অবজেক্ট ফোল্ডারগুলি"

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