वर्तमान में Microsoft.Net.Compilers का कोई उद्देश्य नहीं है। यह एक NuGet पैकेज है जिसे अपग्रेड किया गया है और विजुअल स्टूडियो 16.5 के बाद इसका उत्पादन बंद हो जाएगा। Microsoft.Net.Compilers.Toolset नामक एक उत्तराधिकारी पैकेज है। इस पैकेज में Microsoft.Net.Compilers के समान ही कार्यक्षमता है लेकिन .NET डेस्कटॉप और .NET कोर MSBuild दोनों उदाहरणों के साथ काम करता है।
यहां तक कि Microsoft.Net.Compilers.Toolset सामान्य खपत के लिए नहीं है। यह पैकेज दो विशिष्ट उपयोग करता है:
- कंपाइलर में दुर्घटनाग्रस्त बग को हिट करने वाले ग्राहकों को अनब्लॉक करने के लिए एक अल्पकालिक वाहन के रूप में कार्य करता है। ऐसे ग्राहकों के लिए हम इस पैकेज का उपयोग उनके परिदृश्यों को अनब्लॉक करने के लिए सिर्फ एक-एक घंटे के लिए कर सकते हैं। यह तब तक एक पुल के रूप में कार्य करता है जब तक कि इसे संबंधित विजुअल स्टूडियो या .NET SDK सर्विसिंग रिलीज़ में ठीक नहीं कर देता। जब ऐसा होता है तो ग्राहक को उनके समाधान से पैकेज को हटाने और आधिकारिक तौर पर जारी टूलसेट पर भरोसा करने के लिए कहा जाता है।
- Roslyn और .NET SDk के आधिकारिक बिल्ड के बीच बायनेरिज़ को स्थानांतरित करने के लिए एक तंत्र के रूप में कार्य करता है।
इस पैकेज है नहीं उनके निर्माण के लिए ग्राहकों द्वारा सामान्य लंबी अवधि के उपभोग के लिए मतलब है। मैं समझता हूं कि कुछ ग्राहक ऐसा करने के लिए चुनते हैं लेकिन इस तरह के उपयोग का समर्थन नहीं किया जाता है। पैकेज नियमित रूप से MSBuild के नए संस्करणों या निर्भरता / .NET SDK में लक्ष्य / लक्ष्य पर निर्भरता लेने से टूट सकता है।
जो ग्राहक अपने बिल्डरों के लिए संकलक के नए संस्करणों का उपयोग करना चाहते हैं, उन्हें इसके बजाय संकलक के आधिकारिक वितरण में से एक का उपयोग करने के लिए प्रोत्साहित किया जाता है:
- Visual Studio बिल्ड टूल SKU का उपयोग करें।
- .NET SDK का उपयोग करें
नोट : Microsoft.Net.Compilers पैकेज को आधिकारिक तौर पर Microsoft के एक भाग के रूप में समर्थित किया गया था। CodeDom.Providers.DotNetCompilerPlatform पैकेज कई साल पहले था क्योंकि यह एक निर्भरता थी। संस्करण 2.0 में शुरुआत हालांकि Microsoft.Net.Compilers पर निर्भरता को हटा दिया गया था और यह अब पूरी तरह से स्वतंत्र पैकेज के रूप में खड़ा है। उसी समय हम Microsoft.Net.Compilers को हटाने के लिए चले गए हैं क्योंकि अब इसके लिए कोई स्पष्ट उपयोग के मामले नहीं हैं।
इसका मतलब यह है कि कुछ ग्राहक अप्रत्याशित रूप से अपने प्रोजेक्ट फ़ाइल में Microsoft.Net.Compilers के साथ खुद को पाते हैं क्योंकि जब Microsoft.CodeDom.Providers.DotNetCompilerPlatform निर्भरता को हटा दिया गया था तो इसे हटाया नहीं गया था। ऐसे ग्राहकों के लिए सलाह केवल पैकेज के संदर्भ को हटाना है। इसकी अब जरूरत नहीं है।
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
v1.0.8 की एक निर्भरता भी है और नीचे आप इसे इस कारण से देख रहे होंगे