msbuild.exe খোলা থাকা, ফাইল লক করা


99

আমি টিমসিটি ব্যবহার করি যা ঘুরেফিরে এমসবিল্ডকে (। নেট 4) ডাকে। আমার কাছে একটি বিস্ময়কর সমস্যা আছে যে কোনও বিল্ড সম্পূর্ণ হওয়ার পরে (এবং এটি সফল বিল্ড ছিল কিনা তা মনে হয় না), এমএসবিল্ড.এক্সই খোলা থাকে এবং একটি ফাইল লক করে, যার অর্থ প্রতিবার টিমসিটি চেষ্টা করে এর কাজের ডিরেক্টরি সাফ করার জন্য, এটি ব্যর্থ হয় এবং চালিয়ে যেতে পারে না।

এটি প্রায় প্রতিবারই ঘটে ।

আমি এটির জন্য সত্যিই হারিয়েছি, তাই আমি যথাসম্ভব বিস্তারিত সরবরাহ করার চেষ্টা করব।

  • সার্ভারটি একটি ইন্টেল কোর আই 7, 2 জিবি র‌্যাম, উইন্ডোজ সার্ভার 2008 স্ট্যান্ডার্ড 64-বিট এসপি 2 সহ।
  • টিমসিটিতে, মিসবিল্ড রানারটি /mকমান্ড-লাইন প্যারামিটারের সাথে কনফিগার করা হয়েছে (যার অর্থ একাধিক কোর ব্যবহার করা)
  • প্রশ্নে থাকা ফাইলটি সর্বদা একই বাহ্যিক ডিএলএল যা পথে .NET প্রকল্পের একটিতে উল্লেখ করা হয় External Tools\Telerik\Telerik.Reporting.Dll। ( External Toolsএকই ধরণের পথ কাঠামোর সাথে দিরের সাথে অন্তর্ভুক্ত রয়েছে আরও বেশ কয়েকটি .DLL ফাইল যা কখনও এই সমস্যার কারণ হয় না)। বর্তমানে এটি টেলিরিক প্রতিবেদনের ট্রায়াল সংস্করণের সাথে রয়েছে, যদি এতে কোনও পার্থক্য আসে।
  • সমস্যাটি ঘটে গেলে, msbuild.exe *32টাস্ক ম্যানেজারে সর্বদা বেশ কয়েকটি প্রক্রিয়া তালিকাবদ্ধ থাকে: আমি বিশ্বাস করি there টি রয়েছে Process তারা সবাই 20-50MB র‌্যাম এবং 0.0% সিপিইউ থেকে ব্যবহার করছে।
  • আমি যদি ১-৩ মিনিট অপেক্ষা করি তবে এমএসবিল্ড.এক্সই তাদের নিজস্ব থেকে প্রস্থান করবে এবং টিমসিটি তারপরে সঠিকভাবে কাজের ডিরেক্টরি আপডেট করতে পারে।
  • আমি যদি ম্যানুয়ালি এম্সবিল্ড প্রক্রিয়াগুলি বন্ধ করে দিই, টিমসিটির আপডেটগুলি তত্ক্ষণাত আবার কাজ করবে।
  • ইনডেক্সিং পরিষেবাদিগুলি উইন্ডোজে বন্ধ করা আছে (যদিও পূর্ববর্তী দুটি পয়েন্টগুলি নিশ্চিত করে যে এটি এমএসবিল্ড ex এক্স সমস্যা তৈরি করে)।
  • Telerik.reporting.dll- তে কোনও বিশেষ সম্পত্তি নেই। একমাত্র এসভিএন সম্পত্তিsvn:mime-type = application/octet-stream

এর আগে কেউ কি দৌড়ে গেছে?

উত্তর:


125

ব্যবহার করুন msbuildসঙ্গে /nr:false

সংক্ষেপে: এমএসবিল্ড বিশেষ করে সমান্তরাল বিল্ডগুলির সাথে দ্রুত হওয়ার জন্য প্রচুর পরিমাণে করার চেষ্টা করে। এটি প্রচুর "নোডগুলি" উত্পন্ন করবে - পৃথক এমএসবিল্ড.এক্স.সি প্রক্রিয়া যা প্রকল্পগুলি সংকলন করতে পারে এবং যেহেতু প্রক্রিয়াগুলি স্পিন করতে একটু সময় নেয়, বিল্ডটি সম্পন্ন হওয়ার পরে, এই প্রক্রিয়াগুলি প্রায় 15 মিনিটের জন্য স্থির থাকে (ডিফল্টরূপে, 15 মিনিটের জন্য, আমি মনে করি) ), যাতে আপনি শীঘ্রই আবারও নির্মাণের লক্ষ্যে এই নোডগুলি "পুনরায় ব্যবহার" করতে পারেন এবং প্রক্রিয়া সেটআপ ব্যয়টি বাঁচাতে পারেন। তবে আপনি উল্লিখিত কমান্ড-লাইন বিকল্পের সাথে নোডের ব্যবহার বন্ধ করে সেই আচরণটি অক্ষম করতে পারেন।

আরো দেখুন:


4
অর্থবোধ করে: আমি / মিটি সরিয়ে দিলে এমনটি হবে বলে মনে হচ্ছে না। আমি এখন দিয়ে চেষ্টা করছি /m /nr:false, আমি কয়েকটি বিল্ডের জন্য দৌড়াব এবং এটি কীভাবে হয় তা দেখুন। ধন্যবাদ
গ্রেগম্যাক

26
আপনি কীভাবে এই এমএসবিল্ড বিকল্পটি দিয়ে প্রকল্পটি তৈরি করতে ভিজ্যুয়াল স্টুডিও পাবেন?
ক্যামেরন ট্যাগগার্ট

4
আমি এখনও জানতে চাই, তবে আমি আসলে সি ++ / সিএলআই প্রকল্পগুলির জন্য একটি ভিজ্যুয়াল স্টুডিও 11 বিটা বাগে চলে এসেছি। একই লক্ষণগুলির কারণ হয়: সংযুক্ত.মাইক্রোসফট
ক্যামেরন ট্যাগগার্ট

4
অকাল অপটিমাইজেশন সত্যই সমস্ত অশুভের মূল। আপনি স্তন্যপান, মাইক্রোসফ্ট।
জনউবিবার্ড

4
@ ক্যামেরনটাগগার্ট আপনি আপনার প্রকল্প / সমাধান ফোল্ডারে হোস্ট করা একটি বিশেষ ফাইলের সাথে এমএসবিল্ড কমান্ড লাইন বিকল্পগুলি যুক্ত করতে পারেন। ডকস.মাইক্রোসফট.এইন.ইউএস
ভিসুয়ালস্টুডিও /

44

ভিজ্যুয়াল স্টুডিওতে নোডের পুনরায় ব্যবহার অক্ষম করতে, আপনাকে অবশ্যই একটি পরিবেশের পরিবর্তনশীল ব্যবহার করতে হবে:

MSBUILDDISABLENODEREUSE=1

আমি এটি কার্যকরভাবে ব্যবহার করেছি, তবে এখন আর একটি সরঞ্জাম রয়েছে যা ব্যর্থ হচ্ছে, যখন ভিএস 11 বিটা, যেটি এমটি.এক্স.এর সাথে সি ++ সংকলন করবে, তার জন্য কি অন্য কোনও চলক আছে?
ইউজিনিও মিরি

এটি কোনও জায়গায় ডায়ালগ বক্স ব্যবহার করে সেট করা যায় না?
dom_beau

4
@ এটিকে খুঁজে পাওয়ার জন্য আন্তরিক ধন্যবাদ, এবং আমি প্রার্থনা করছি মাইক্রোসফ্টকে অক্ষম করার জন্য এমন একটি পরিবেশের পরিবর্তনশীলও রয়েছে V ভিসুয়াল স্টুডিও.ওয়েব.হোস্ট.এক্সই ।
জেরুয়েট

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