2012-09-12 14 views
156

के माध्यम से .NET Framework 4.5 को लक्षित करना आज मैंने अपनी मशीन पर .NET Framework 4.5 को विजुअल स्टूडियो 2010 से इसका उपयोग करने में सक्षम होने की उम्मीद की है, क्योंकि यह केवल एक मामूली अपडेट है जिसे Visual   के लिए समस्याएं उत्पन्न नहीं करनी चाहिए स्टूडियो   2010. दुर्भाग्य से मैं कुछ 4.0 को मैन्युअल रूप से हटाने और इसी 4.5 असेंबली को जोड़ने के परिणामस्वरूप मूल 4.0 असेंबली को अभी भी परियोजना में संदर्भित नहीं किया गया है।विजुअल स्टूडियो 2010

क्या दृश्य   स्टूडियो   2010 से संस्करण 4.5 को लक्षित करना संभव है और यदि हां, तो कैसे? मैं वास्तव में रिबन का उपयोग करना चाहूंगा ...

+0

आपको .NET v4.5 समर्थन के लिए विजुअल स्टूडियो 2012 में अपग्रेड करना होगा। – Arran

+0

मुझे इस सीमा के बारे में पता चला जब मैं सिस्टम का उपयोग करने की कोशिश कर रहा था। treading.Tasks.Task.Run() विधि में वीएस 2010 कंसोल एप्लिकेशन। यदि आपका प्रोजेक्ट लक्ष्यीकरण कर रहा है तो यह विधि टास्क क्लास पर दिखाई नहीं देती है। नेट फ्रेमवर्क 4.0 और फिर आप महसूस करते हैं कि VS2010 लक्ष्य नहीं कर सकता है। यदि आप चाहते हैं तो फ्रेम फ्रेम 4.5। – RBT

उत्तर

187

विजुअल स्टूडियो 2010 से पहले विजुअल स्टूडियो का प्रत्येक संस्करण एक विशिष्ट .NET ढांचे से जुड़ा हुआ है। (वीएस -2008 .NET 3.5 है, वीएस2005 .NET 2.0 है, वीएस2003 .NET1.1 है) विजुअल स्टूडियो 2010 और इससे पहले पूर्व ढांचे के संस्करणों को लक्षित करने की अनुमति है लेकिन भविष्य में रिलीज के लिए इसका उपयोग नहीं किया जा सकता है। .NET 4.5 का उपयोग करने के लिए आपको विजुअल स्टूडियो 2012 का उपयोग करना होगा।

+8

पूरी तरह से सच नहीं है - वीईएस संस्करणों के बीच .NET 3.0 जारी किया गया था, और इसका उपयोग वीएस2005 में किया जा सकता था। –

+1

सच है, लेकिन केवल एक एक्सटेंशन के माध्यम से। यह शुरुआत से वीएस 2005 में नहीं बनाया गया था (और, जैसा कि, पूरी तरह अनुकूल नहीं है)। – thefellow3j

+5

क्या एक कन्डर्रम: एमएसआई इंस्टॉलर्स को तैनात करने के लिए प्रिय बनाम 2010 सेटअप परियोजना खोने की लागत पर .NET 4.5 की एक अच्छी तरह से उपयोग करने के लिए बनाम2012 + पर माइग्रेट करें ... "अपग्रेड" एक साइडग्रेड की तरह अधिक महसूस करता है ... – ecoe

63

बहुत सीमित परिदृश्य हैं जो मैं सोच सकता हूं कि यह कहां उपयोगी होगा, लेकिन मान लें कि आपको वीएस2012 या उस प्रभाव से कुछ खरीदने के लिए धन नहीं मिल सकता है। यदि ऐसा है और आपके पास विंडोज 7+ और वीएस 2010 है तो आप निम्नलिखित हैक का उपयोग करने में सक्षम हो सकते हैं जो मैंने काम किया है (लेकिन मैंने अभी तक इस विधि का उपयोग करके एक एप्लिकेशन को पूरी तरह से तैनात नहीं किया है)।

  1. बैकअप अपनी परियोजना फ़ाइल !!!

  2. Windows 8 SDK डाउनलोड और स्थापित करें जिसमें .NET 4.5 SDK शामिल है।

  3. अपनी परियोजना को वीएस -2010 में खोलें।

  4. निम्नलिखित सामग्री के साथ Compile_4_5_CSharp.targets नामक अपनी प्रोजेक्ट में एक टेक्स्ट फ़ाइल बनाएं। (या बस यह here डाउनलोड - फ़ाइल नाम से ".txt" विस्तार निकालना सुनिश्चित करें):

    <Project DefaultTargets="Build" 
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    
        <!-- Change the target framework to 4.5 if using the ".NET 4.5" configuration --> 
        <PropertyGroup Condition=" '$(Platform)' == '.NET 4.5' "> 
         <DefineConstants Condition="'$(DefineConstants)'==''"> 
          TARGETTING_FX_4_5 
         </DefineConstants> 
         <DefineConstants Condition="'$(DefineConstants)'!='' and '$(DefineConstants)'!='TARGETTING_FX_4_5'"> 
          $(DefineConstants);TARGETTING_FX_4_5 
         </DefineConstants> 
         <PlatformTarget Condition="'$(PlatformTarget)'!=''"/> 
         <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> 
        </PropertyGroup> 
    
        <!-- Import the standard C# targets --> 
        <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
    
        <!-- Add .NET 4.5 as an available platform --> 
        <PropertyGroup> 
         <AvailablePlatforms>$(AvailablePlatforms),.NET 4.5</AvailablePlatforms> 
        </PropertyGroup> 
    </Project> 
    
  5. अपनी परियोजना अनलोड (दाएं क्लिक करें -> अनलोड)।

  6. प्रोजेक्ट फ़ाइल संपादित करें (राइट क्लिक करें -> संपादित करें * .csproj)।

    एक:

  7. परियोजना फ़ाइल में निम्न परिवर्तन करें। कदम 4

    <!-- Old Import Entry --> 
    <!-- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> --> 
    
    <!-- New Import Entry --> 
    <Import Project="Compile_4_5_CSharp.targets" /> 
    

    ख में बनाए गए लक्ष्य फ़ाइल के साथ डिफ़ॉल्ट Microsoft.CSharp.targets बदलें। .NET 4.5

    <!-- Old default platform entry --> 
    <!-- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> --> 
    
    <!-- New default platform entry --> 
    <Platform Condition=" '$(Platform)' == '' ">.NET 4.5</Platform> 
    

    सी पर डिफ़ॉल्ट प्लेटफॉर्म बदलें। प्रोजेक्ट गुणों में निर्दिष्ट अनुसार अन्य ढांचे को लक्षित करने की अनुमति देने के लिए AnyCPU प्लेटफ़ॉर्म जोड़ें। इस फ़ाइल में

    <PropertyGroup Condition="'$(Platform)' == 'AnyCPU'"> 
        <PlatformTarget>AnyCPU</PlatformTarget> 
    </PropertyGroup> 
    
    . 
    . 
    . 
    <ItemGroup> 
    . 
    . 
    . 
    
  8. में पहली <ItemGroup> टैग से पहले सिर्फ जोड़ा जाना चाहिए अपने परिवर्तनों को सहेजें और *.csproj फ़ाइल को बंद करें।

  9. अपनी प्रोजेक्ट को फिर से लोड करें (राइट क्लिक -> प्रोजेक्ट रीलोड करें)।

  10. विन्यास प्रबंधक (बिल्ड -> कॉन्फ़िगरेशन मैनेजर) में यकीन है कि ".NET 4.5" मंच अपनी परियोजना के लिए चुना गया है।

  11. अभी भी कॉन्फ़िगरेशन प्रबंधक में, ".NET 4.5" के लिए एक नया समाधान प्लेटफ़ॉर्म बनाएं (आप इसे "किसी भी CPU" से आधार बना सकते हैं) और सुनिश्चित करें कि समाधान के लिए ".NET 4.5" चुना गया है।

  12. अपनी परियोजना का निर्माण और त्रुटियों के लिए जाँच करें।

  13. मानते हुए निर्माण आप अपने स्रोत कोड के लिए एक 4.5 विशिष्ट वर्ग के लिए एक संदर्भ जोड़कर सत्यापित कर सकते हैं कि आप वास्तव में लक्षित कर रहे हैं 4.5 पूरा:

    using System; 
    using System.Text; 
    
    namespace testing 
    { 
        using net45check = System.Reflection.ReflectionContext; 
    } 
    
  14. जब आप ".NET 4.5" का उपयोग कर संकलन मंच निर्माण सफल होना चाहिए। आप VS2010 में एक इंस्टॉलर पैकेज बनाना चाहते हैं FYI करें

    Error 6: The type or namespace name 'ReflectionContext' does not exist in 
    the namespace 'System.Reflection' (are you missing an assembly reference?) 
    
+3

यह क्रैजी है, भले ही यह काम करता है, क्या यूआई तत्व रिबन डिजाइनर जैसे xaml और अन्य त्रुटियों के लोगों के बिना काम करेंगे? बस अपग्रेड करें। –

+0

यह वास्तव में काम करता है। लेकिन मैं बस इसका उपयोग कर रहा हूं इसलिए मैं .NET Framework 4.5.1 स्थापित करने के बाद VS2010 पर Moles चलाना जारी रख सकता हूं। –

+1

डेविड वुडवर्ड के जवाब के अलावा, मैंने जोड़ा: ' बिन \ 'पहले प्रॉपर्टी ग्रुप में, जब नीचे की त्रुटि हुई: आउटपुटपाथ प्रॉपर्टी प्रोजेक्ट' प्रोजेक्ट नेम 'के लिए सेट नहीं है। – mparkuk

7

,, दुर्भाग्य से यह केवल नेट 4. लक्षित करता है काम करने के लिए: जब आप "किसी भी सीपीयू" मंच के अंतर्गत संकलन आप एक संकलक त्रुटि मिलना चाहिए इसके आस-पास, आपको लॉन्च हालत के रूप में नेट 4.5 जोड़ना होगा।

संस्थापक का शुभारंभ शर्तें करने के लिए निम्न जोड़ें (राइट क्लिक करें, देखें, लॉन्च शर्तें)।

"खोज लक्ष्य मशीन", सही क्लिक करें और "रजिस्ट्री खोज जोड़ें"।

Property: REGISTRYVALUE1 
RegKey: Software\Microsoft\NET Framework Setup\NDP\v4\Full 
Root: vsdrrHKLM 
Value: Release 

जोड़ें नया "स्थिति लॉन्च":

Condition: REGISTRYVALUE1>="#378389" 
InstallUrl: http://www.microsoft.com/en-gb/download/details.aspx?id=30653 
Message: Setup requires .NET Framework 4.5 to be installed. 

कहाँ:

378389 = .नेट फ्रेमवर्क 4,5

378675 = .नेट फ्रेमवर्क 4.5.1 Windows 8.1

के साथ स्थापित

378758 = .नेट फ्रेमवर्क 4.5.1, विंडोज 7 SP1, या विंडो Windows 8 पर स्थापित रों Vista SP2

379893 = .NET Framework 4.5.2

लॉन्च हालत संदर्भ: http://msdn.microsoft.com/en-us/library/vstudio/xxyh2e6a(v=vs.100).aspx

3

मैं VS2010/DNFW 4.5 एकीकरण के साथ संघर्ष कर रहा है और अंत में यह काम कर मिल गया है। वीएस 2008 में शुरू होने से, असेंबली का एक कैश पेश किया गया था जिसका उपयोग विजुअल स्टूडियो द्वारा किया जाता है जिसे "संदर्भित असेंबली" कहा जाता है। वीएस 2010 के लिए यह फ़ाइल कैश \ संदर्भ असेंबली \ Microsoft \ Framework.NetFramework \ v4.0 पर स्थित है। दृश्य स्टूडियो फ्रेमवर्क स्थापना निर्देशिका के बजाय इस स्थान से फ्रेमवर्क असेंबली लोड करता है। जब माइक्रोसॉफ्ट का कहना है कि वीएस 2010 डीएनएफडब्लू 4.5 का समर्थन नहीं करता है तो वे मतलब यह है कि डीएनएफडब्लू 4.5 स्थापित होने पर यह निर्देशिका अद्यतन नहीं होती है। एक बार जब आप अपडेट की गई डीएनएफडब्लू 4.5 फाइलों के साथ इस स्थान में फ़ाइलों को प्रतिस्थापित कर लेंगे, तो आप पाएंगे कि वीएस 2010 खुशी से डीएनएफडब्लू 4.5 के साथ काम करेगा।

1

एक और खोज से। मेरे लिए काम किया!

"आप अपने ओएस .NET 4.5 का समर्थन करता है प्रदान की है, दृश्य स्टूडियो 2010 का उपयोग कर सकते हैं और यह यह समर्थन करता है।

संदर्भ जोड़ने के लिए अपने समाधान पर राइट क्लिक करें (जैसा कि आप करते हैं)। संवाद बॉक्स से पता चलता है, चयन ब्राउज़, उसके बाद निम्न फ़ोल्डर में नेविगेट जब:

C: \ Program Files (x86) \ संदर्भ विधानसभाओं \ Microsoft \ फ्रेमवर्क \ .Net Framework \ 4.5

आप पाएंगे यह वहाँ है। "

+2

वाक्य में "आप इसे वहां पाएंगे", "यह" क्या है? हम उस फ़ोल्डर में कौन सी फाइल चुनते हैं? क्या उनमें से एक हमें वीएस 2010 में 4.5 नेट को लक्षित करने देगा? –

+0

आपको नामस्थान असेंबली मिल जाएगी। आप जो भी चाहें जोड़ सकते हैं। उदाहरण के लिए, मुझे ज़िप फ़ाइलों के साथ काम करने के लिए एक विधि का उपयोग करने की आवश्यकता है। तो मुझे डीएल "System.IO.Compression.dll" मिला और इसे मेरे प्रोजेक्ट में जोड़ा गया। तब मैं स्पष्ट रूप से अपने कोड में नेमस्पेस सूचीबद्ध कर सकता था और आवश्यक विधियों का उपयोग कर सकता था। –

+0

यह मेरे लिए काम नहीं करता है। यदि आप अपना संदर्भ हटाते हैं, कहें, सिस्टम, और उसके बाद .Net 4.5 System.dll पर ब्राउज़ करें और इसे संदर्भ के रूप में जोड़ें, VS अभी भी 4.0 System.dll को चुनता है कैप्चर नस्टी का उत्तर इस पृष्ठ पर मेरे लिए काम करता है, उदा। C: \ Program Files (x86) \ संदर्भ असेंबली \ Microsoft \ Framework \ .NETFramework \ v4.6 से System.dll की प्रतिलिपि बनाएँ और इसे C: \ Program Files (x86) \ संदर्भ असेंबली \ Microsoft में System.dll के शीर्ष पर छोड़ दें \ फ्रेमवर्क \ .NETFramework \ v4.0। ध्यान दें कि यह एक बुरा हैक है और इसमें अनपेक्षित परिणाम हो सकते हैं। – Jinlye

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