कृपया ध्यान दें कि नीचे समाधान .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 एमबी)। तुम्हारा कॉल।
स्रोत
2012-06-26 13:37:20
आप उन लोगों के लिए मैन्युअल रूप से संदर्भ देख सकते हैं जो क्लाइंट प्रोफ़ाइल के साथ शामिल नहीं हैं (या आपके लिए ऐसा करने के लिए एक टूल लिखें!)। मुझे बॉक्स से बाहर निकलने का यकीन नहीं है। –
AFAIK, केवल असेंबली का उपयोग करते समय केवल ग्राहक प्रोफ़ाइल की आवश्यकता होती है, पूर्ण/नेट फ्रेमवर्क को विकास/डिबगिंग उद्देश्यों के लिए आवश्यक है। –
कोई भी समाधान काम करेगा, केवल कोड होना आवश्यक नहीं है। – Evan