संभव समाधान, स्कॉटगू के ब्लॉग पोस्टिंग (पृष्ठ पर "8026" की खोज) पर टिप्पणियों से लिया गया है :
समाधान सुझाव 1 (डेविड टेलर)
इन RTM कोड डोम तत्वों को web.config में जोड़ें:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>
फिर Roslyn और Microsoft.CodeDom.Providers जोड़ें। * अपने बिन निर्देशिका में सामान भरें।
यह सेटअप करने के लिए पर्याप्त आसान है, लेकिन मेरे लिए बस अजीब था कि अगर आपने वीएस 2015 आरटीएम में एक नया "वेब साइट" बनाते समय .NET 4.6 का चयन किया था, तो इसके लिए डिफ़ॉल्ट टेम्पलेट सेट नहीं किया गया था।
समाधान सुझाव 2 (मार्टिन)
ऊपर डेविड टेलर की टिप्पणी के आगे, यह सिस्टम की तरह दिखता है। जब वेब ऐप टारगेटफ्रॉमवर्क के साथ डिफ़ॉल्ट v4.5.2 के रूप में बनाया जाता है, तो सिस्टम सेटिंग्स स्वतंत्रता सही होती हैं। TargetFramework को v4.6 में बदलना CSharp के लिए संकलक सेटिंग्स को संशोधित करने के लिए प्रकट होता है, एक तरह से जो समस्या का कारण बनता है।
मेरा वर्कआर्डर इस प्रकार था:
- फ़ाइल / नया / ASP.NET वेब अनुप्रयोग
- ASP.NET 4.5.2 टेम्पलेट्स से "वेब एपीआई" टेम्पलेट का चयन करें
- Web.config में system.cod स्वतंत्रता तत्व (और इसकी सामग्री) की एक प्रति लें
- गुण / TargetFramework का उपयोग करके, लक्ष्य फ़्रेमवर्क को 4.6 पर सेट करें
- TargetFramework को बदलने से पहले ली गई कॉपी के साथ web.config में संशोधित system.cod स्वतंत्रता तत्व को बदलें
- मारो F5
होम पेज को उम्मीद के मुताबिक लोड करना चाहिए।
जानकारी के लिए, Target.cramework को v4.6 में बदलने के तुरंत बाद system.cod स्वतंत्रता सामग्री। निम्नानुसार था (प्रकार "Microsoft.CSharp.CSharpCodeProvider" का उपयोग करें):
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701">
<providerOption name="CompilerVersion" value="v4.0"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\"Web\" /optionInfer+"/>
</compilers>
</system.codedom>