মাইএএসব্যাস.এক্সএমএলসায়ারালাইজারস.ডিএল কীসের জন্য উত্পন্ন?


124

আমি এমন একটি প্রকল্পে কাজ করছি যা একটি সমাবেশ তৈরি করে। আমি সবেমাত্র লক্ষ্য করেছি যে একটি অতিরিক্ত সমাবেশ * .XMLSerializer.dll তৈরি হচ্ছে। কেন এই ফাইলটি স্বয়ংক্রিয়ভাবে উত্পন্ন হয় এবং এর জন্য কী ব্যবহার করা হয়?


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

উত্তর:


101

ইন .NET প্রয়োগ, XmlSerializer একটি অস্থায়ী সমাবেশ serializing জন্য / (কর্মক্ষমতা কারণে) আপনার ক্লাস deserializing জেনারেট করে। এটি হয় ফ্লাইতে উত্পন্ন করা যেতে পারে (তবে এটি প্রতিটি প্রয়োগে সময় নেয়), অথবা এটি সংকলনের সময় প্রিজারেটেড করা যেতে পারে এবং আপনি যে সমাবেশটি সম্পর্কে জিজ্ঞাসা করছেন সেটিতে এটি সংরক্ষণ করা যেতে পারে।

আপনি প্রকল্পের বিকল্পগুলিতে এই আচরণ পরিবর্তন করতে পারেন (ট্যাব কম্পাইল -> উন্নত কম্পাইল বিকল্প -> ধারাবাহিকতাতে সমাহারগুলি জেনারেট করুন , অটো বা উপর যথাক্রমে)। প্রজেক্ট ফাইলে সম্পর্কিত উপাদানটি হ'ল জেনারেটসরিয়ালাইজেশন অ্যাসেমব্লিজগুলি , উদাহরণস্বরূপ <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>,।


21
যদি প্রকল্প সেটিংটি স্বয়ংক্রিয়রূপে তৈরি হয় তবে এর অর্থ কি এটির প্রয়োজন? আপনি যদি অ্যাপ্লিকেশনটির সাথে X.XMLSerializer.dll স্থাপন না করেন তবে কী হবে?
ররি

3
তাহলে কীভাবে কেউ এই সমাবেশগুলি প্রি-লোডিংয়ের বিষয়ে যায়?
কার্লো

1
@ ররি, আমি জানি এই প্রশ্নটি পুরানো, তবে এটি মনে হয়। আমার তিনটি প্রকল্প সেট করা হয়েছিল Auto, তবে কেবলমাত্র একটি সিরিয়ালাইজেশন ডিএলএল তৈরি করেছে।
পিএস 2 বোট

4
**Generate Serialization Assemblies** Specifies whether the compiler will use the XML Serializer Generator Tool (Sgen.exe) to create XML serialization assemblies. Serialization assemblies can improve the startup performance of XmlSerializer if you have used that class to serialize types in your code. By default, this option is set to Auto, which specifies that serialization assemblies be generated only if you have used XmlSerializer to encode types in your code to XML. msdn.microsoft.com/en-us/library/kb4wyys2.aspx
ps2goat

2
VS2015 ম্যানুয়াল পরিবর্তন: প্রকল্পের নামের উপর ডান ক্লিক করুন -> সম্পত্তি -> বিল্ড -> (নীচে স্ক্রোল করুন) সিরিয়ালাইজেশন অ্যাসেমব্লি তৈরি করুন।
oদও 95

54

অবগতির জন্য। এক্সএমএসরিশালাইজার.ডিলকে স্বয়ংক্রিয়ভাবে উত্পাদিত হওয়া বন্ধ করার সঠিক পদক্ষেপগুলি হ'ল:

  1. ভিএস-এ, আপনার প্রকল্পের ফাইলটিতে ডান ক্লিক করুন এবং "সম্পত্তি" নির্বাচন করুন
  2. "বিল্ড" ট্যাবে ক্লিক করুন
  3. "অটো" থেকে "অফ" তে "সিরিয়ালাইজেশন জেনারেট তৈরি করুন" ড্রপডাউনটি পরিবর্তন করুন
  4. পুনর্নির্মাণ করুন এবং এটি চলে যাবে

17
হ্যাঁ তবে প্রশ্নটি কেন তৈরি হয়েছিল!
হেমন্ত

আমি জানি এটি একটি পুরানো প্রতিক্রিয়া তবে একটি উইনফরম অ্যাপ্লিকেশনটিকে লক্ষ্য করে। VET2015 আপডেট 3-এ .NET 2.0 x86 যখন উইন 10 এনটি 64 বিট সিস্টেমে সংকলিত হয় তারপরেও যখন "সিরিয়ালাইজেশন জেনারেট জেনারেট জেনারেট জেনারেট করুন" "অফ" এ নামানো হয় তখনও *। এক্সএমএলসিরালাইজারস। dll এখনও উত্পন্ন হয়। আমার অ্যাপ্লিকেশন একটি ASMX ওয়েব পরিষেবা রেফারেন্স দেয় reference VS2015 আপডেট 3 এ কোনও বাগ থাকতে পারে?
পিটার

6

আমি মনে করি এটি পারফরম্যান্সের কারণে XML সিরিয়ালাইজারগুলির জেআইটি (ঠিক সময়ে সময়ে) সংকলন।

RegexOptions.Compiled বিকল্পটি চালু করে আপনি RegEx উদাহরণগুলির সাথে একই জিনিসটি পান।

আমি নেই। নেট সিএলআর বিশেষজ্ঞ, সুনির্দিষ্ট প্রযুক্তিগত বিশদ না থাকার জন্য দুঃখিত।


5

*.XmlSerializers.dll Sgen.exe [এক্সএমএল সিরিয়ালাইজার জেনারেটর সরঞ্জাম] ব্যবহার করে তৈরি করা হয়েছে

এমএসডিএন-তে Sgen.exe দেখুন

সাধারণত Sgen.exeপ্রকল্পগুলির পোস্ট বিল্ড ইভেন্টগুলিতে ব্যবহৃত হয়। আপনার প্রকল্পে পোস্ট বিল্ড ইভেন্ট রয়েছে কিনা তা দেখুন*.XmlSerializers.dll


4

প্রকল্পটি কেবল ওয়েব অ্যাপ্লিকেশনগুলির জন্য প্রজেক্টটি তৈরি করে X অন্যান্য অ্যাপ্লিকেশনগুলির জন্য আপনাকে আলাদা আলাদাভাবে চালিত করতে হবে।


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