2012-06-26 25 views
5

तृतीय पक्ष असेंबली का उपयोग करते समय मुझे यह पता लगाने का एक तरीका चाहिए कि उन्हें पूर्ण .NET 4 या केवल .NET 4 क्लाइंट प्रोफ़ाइल की आवश्यकता है या नहीं।यह निर्धारित करने के लिए कि क्या एक डीएलएल को पूर्ण .NET 4 की आवश्यकता है या सिर्फ ग्राहक प्रोफ़ाइल

मैंने Determine .NET Framework version for dll संदर्भित .NET संस्करण का पता लगाने के अन्य तरीकों को देखा है, लेकिन उस प्रश्न में उल्लिखित तरीके क्लाइंट प्रोफाइल बनाम पूर्ण का पता लगाने के तरीके को नहीं दिखाते हैं। क्या यह संभव है?

मैं किसी भी समाधान की तलाश में हूं, इसे कोड/रनटाइम समाधान नहीं होना चाहिए।

+0

आप उन लोगों के लिए मैन्युअल रूप से संदर्भ देख सकते हैं जो क्लाइंट प्रोफ़ाइल के साथ शामिल नहीं हैं (या आपके लिए ऐसा करने के लिए एक टूल लिखें!)। मुझे बॉक्स से बाहर निकलने का यकीन नहीं है। –

+0

AFAIK, केवल असेंबली का उपयोग करते समय केवल ग्राहक प्रोफ़ाइल की आवश्यकता होती है, पूर्ण/नेट फ्रेमवर्क को विकास/डिबगिंग उद्देश्यों के लिए आवश्यक है। –

+0

कोई भी समाधान काम करेगा, केवल कोड होना आवश्यक नहीं है। – Evan

उत्तर

2

कृपया ध्यान दें कि नीचे समाधान .NET 4.0 ढांचे के लिए विशिष्ट है, TargetFrameworkAttribue 4.0 के लिए नया है।

मैंने दो अनुप्रयोगों को संकलित किया, एक क्लाइंट फ्रेमवर्क के खिलाफ, दूसरा पूर्ण के खिलाफ। मैंने उन्हें ildasm.exe में खोला और देखा कि दोनों के पास TargetFrameworkAttribute लागू था। आप बस प्रतिबिंब का उपयोग कर सकते मूल्य देखने के लिए:

using System; 
using System.Linq; 
using System.Runtime.Versioning; 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var a = System.Reflection.Assembly.GetExecutingAssembly(); 
     var att = a.GetCustomAttributes(false).OfType<TargetFrameworkAttribute>().Single(); 

     Console.WriteLine(att.FrameworkDisplayName); 
     Console.Read(); 
    } 
} 

अद्यतन: हाँ वास्तव में, ".NET फ्रेमवर्क 3.5 ग्राहकों का प्रोफाइल" के खिलाफ एक आवेदन संकलन करता है नहीं कि विशेषता (कोड कर सकते हैं शामिल अब इसे नहीं देखते हैं और ildasm इसे विशेषता नहीं है)। इस स्थिति में लक्ष्य ढांचे को निर्धारित करने के तरीके के बारे में आपके द्वारा लिंक किए गए दूसरे उत्तर के अलावा, मेरे पास कोई सुराग नहीं है।

भव्य क्या मैं अपने कोड के आधार पर के रूप में व्यर्थ सीमाओं को देखने के बचाने के लिए, मैं जीवन को आसान बनाने हैं और केवल पूर्ण ढांचे लक्ष्य। यदि क्लाइंट को क्लाइंट प्रोफाइल इंस्टॉल करने की अनुमति है, तो यह पूर्ण ढांचे के लिए भी सही है - यह थोड़ा बड़ा है (मैंने एक स्रोत देखा है कि यह केवल 15% बड़ा था, जिससे "छोटे क्लाइंट पैकेज" लाभ में से अधिकांश को अस्वीकार कर दिया गया था 48 एमबी के विरोध में 41 एमबी)। तुम्हारा कॉल।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^