2011-02-12 7 views
8

मैं वर्तमान में .NET 4 क्लाइंट प्रोफाइल के लिए एक एप्लिकेशन विकसित कर रहा हूं, क्योंकि यह संस्करण है जो अधिकांश विंडोज कंप्यूटर पर विंडोज अपडेट के माध्यम से मौजूद होगा।.NET Framework 4 क्लाइंट प्रोफाइल + System.Web.dll?

हालांकि, मैं System.Web.dll का संदर्भ नहीं जोड़ सकता क्योंकि यह इस संस्करण में मौजूद नहीं है - मुझे क्या करना चाहिए?

क्या मेरे आवेदन के साथ System.Web.dll को तैनात करना अच्छा विचार है, या वह काम नहीं करेगा? मुझे वास्तव में HTTP कनेक्शन और सभी की आवश्यकता है, इसलिए मैं अपने आवेदन को वर्कअराउंड के रूप में संशोधित नहीं कर सकता। क्या मेरे आवेदन को .NET 4 (कोई ग्राहक प्रोफ़ाइल) पर लक्षित करना संभवतः एक संभावना है या यह केवल क्लाइंट प्रोफाइल वाले कंप्यूटर पर काम नहीं करेगा?

+3

** अपनी परियोजना के साथ एक स्टैंडअलोन फ़ाइल के रूप में 'System.Web.dll' को तैनात न करें। ** उपयोगकर्ता को पूर्ण .NET Framework स्थापित करने की आवश्यकता है। इसे अपने इंस्टॉलर में शामिल करें और कोई भी परवाह नहीं करेगा। –

उत्तर

5

नेट 4 ग्राहकों का प्रोफाइल, के रूप में यह संस्करण है कि ज्यादातर घर के कंप्यूटर पर वर्तमान Windows अद्यतन के माध्यम से

नहीं वास्तव में हो जाएगा। .NET 4 (क्लाइंट प्रोफ़ाइल या नहीं) वर्तमान में डिफ़ॉल्ट रूप से किसी भी पूर्व-विंडोज 10 स्थापना पर मौजूद नहीं है। उदाहरण के लिए, विंडोज 7 .NET 3.5 SP1 के साथ आता है, न कि .NET 4.0। एक विंडोज अपडेट हो सकता है, लेकिन यह वैकल्पिक है।

इसलिए, आप पूर्ण .NET 4 ढांचे को भी लक्षित कर सकते हैं।

ऑपरेटिंग सिस्टम और .NET फ्रेमवर्क संस्करणों के बीच का लिंक here पाया जा सकता है। चेकमार्क इंगित करते हैं कि एक बॉक्स बॉक्स से बाहर उपलब्ध है, प्लस साइन का मतलब है कि इसे इंस्टॉल किया जा सकता है।

यह भी ध्यान दें कि 4.5, 4.6 और 4.6.1 सभी जगह-जगह अपडेट हैं, जिसका अर्थ है कि इनमें से किसी भी सिस्टम को 4.0 माना जाता है।

+0

मुझे उस समय गलत समझा जाना चाहिए - धन्यवाद। – pimvdb

+1

आप इसे "वैकल्पिक अपडेट" के अंतर्गत देखते हैं। और वह afaik 4.0 क्लाइंट प्रोफाइल है। –

2

यदि आप .NET 4.0 को लक्षित कर रहे हैं और .NET 4.0 क्लाइंट प्रोफ़ाइल नहीं हैं तो आपको इसे prerequisite के रूप में जोड़ना चाहिए। यह आपके एप्लिकेशन को इंस्टॉल करते समय इसे इंस्टॉल करने की अनुमति देगा।

यदि आप .NET 4.0 क्लाइंट प्रोफ़ाइल चलाते हैं तो भी आप Sockets का उपयोग कर सकते हैं, वे System.Net में स्थित हैं। आप केवलSystem.Web चाहते हैं जब निम्न लागू होगा:

System.Web नाम स्थान आपूर्ति वर्गों और इंटरफेस है कि ब्राउज़र-सर्वर संचार सक्षम करें। यह नामस्थान में HttpRequest कक्षा शामिल है, जो वर्तमान HTTP अनुरोध के बारे में विस्तृत जानकारी प्रदान करता है; HttpResponse क्लास, जो क्लाइंट को HTTP आउटपुट प्रबंधित करता है; और HttpServerUtility क्लास, जो सर्वर-साइड उपयोगिताओं और प्रक्रियाओं तक पहुंच प्रदान करता है। System.Web में कुकी मैनिपुलेशन, फ़ाइल स्थानांतरण, अपवाद जानकारी, और आउटपुट कैश नियंत्रण के लिए कक्षाएं भी शामिल हैं।

+0

मुझे यह बताते हुए एक त्रुटि मिलती है कि 'System.Net.dll' जोड़ने के बाद भी 'HttpCookieCollection' प्रकार नहीं मिला है। वैसे भी, क्या यह मेरे आवेदन के साथ 'System.Web.dll' को तैनात करने की संभावना है? – pimvdb

+0

इसमें अन्य निर्भरता भी हो सकती है। क्लाइंट प्रोफाइल के बजाय लक्ष्य ढांचे को .NET 4.0 (पूर्ण) में बदलें। –

2

भले ही आप उस ग्राहक को System.Web.dll की प्रतिलिपि तैनात करते हैं जो समस्या का समाधान नहीं करेगा। और समस्या यह है: आप .NET 4 क्लाइंट प्रोफ़ाइल के लिए संकलित असेंबली से .NET 4 प्रोफ़ाइल (क्लाइंट नहीं) के लिए संकलित असेंबली से लिंक नहीं कर सकते हैं। एकमात्र समाधान आपकी असेंबली को ग्राहक प्रोफ़ाइल पर लक्षित करना है।

MSDN Page about .NET Framework Client Profile

2

तुम सिर्फ HttpWebRequest का उपयोग करना चाहते हैं, तो यह नेट 4.

यहाँ के लिए ग्राहक प्रोफ़ाइल में उपलब्ध है एक उदाहरण है कि आप, बस नेट 4 क्लाइंट का उपयोग कर एक नया कंसोल अनुप्रयोग बनाने की कोशिश कर सकते है प्रोफाइल और इसे प्रोग्राम.cs में पेस्ट करें ...

using System; 
using System.IO; 
using System.Net; 

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var request = WebRequest.Create("http://google.com"); 
      var response = request.GetResponse(); 
      using (var s = response.GetResponseStream()) 
      using(var sr = new StreamReader(s)) 
      { 
       Console.Write(sr.ReadToEnd()); 
      } 

      Console.ReadKey(); 
     } 
    } 
} 

आपने अपनी टिप्पणियों में से एक में HttpCookieCollection के बारे में पूछा। ऐसा लगता है कि HttpWebRequest कुकीज को स्टोर करने के लिए कुकी कोंटेनर का उपयोग करता है।

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