2012-03-26 24 views
5

मैं दृश्य स्टूडियो का उपयोग कर रहा MSBuild पर वैकल्पिक पैरामीटर त्रुटि को अनदेखा कर सकते हैं 2010मैं कैसे 3.5

मैं एक अद्यतन वर्ग (यानी UpdatedClass.cs) जो इस तरह के रूप में वैकल्पिक पैरामीटर, के साथ एक विधि है donwloaded है:

public void DoThis(bool aValue = false) {...} 

विजुअल स्टूडियो 2010 का उपयोग करके, मैं इसे संकलित करने में सक्षम हूं। लेकिन मैं इसे एमएसबिल्ड के साथ नहीं कर सकता:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe /t:Rebuild /clp:ErrorsOnly D:\folder\mySolution.sln 
ln 
Microsoft (R) Build Engine Version 3.5.30729.5420 
[Microsoft .NET Framework, Version 2.0.50727.5448] 
Copyright (C) Microsoft Corporation 2007. All rights reserved. 

UpdatedClass.cs(29,94): error CS0241: Default parameter specifiers are not permitted 

ठीक है, इस संकलक का उपयोग करके वैकल्पिक पैरामीटर की अनुमति नहीं है। तो क्या मैं इस तरह की त्रुटि को अनदेखा करने के लिए, इस MSBuild कमांड में एक अतिरिक्त तर्क जोड़ सकता हूं?

या मुझे C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe का उपयोग कर परियोजना को संकलित करना है? क्या यह एएसपीनेट परियोजनाओं के बारे में सुरक्षित है?

+0

वैकल्पिक पैरामीटर 4.0 ढांचे में कर रहे हैं, तो आप संगत संकलक के साथ इसे बनाने करना होगा। (यदि आप एक अलग लक्ष्य संस्करण के साथ निर्माण करने का प्रयास करते हैं तो आपको विजुअल स्टूडियो में एक ही त्रुटि दिखाई देगी।) – GalacticCowboy

+2

@ गैलेक्टिककॉबॉय: वैकल्पिक पैरामीटर * फ्रेमवर्क * में 1.0 के बाद से हैं, लेकिन वे * सी # * में उपलब्ध नहीं थे v4। –

+0

@ जोन्स स्केट - अच्छा बिंदु। – GalacticCowboy

उत्तर

4

यदि आप सी # 4 सिंटैक्स का उपयोग कर रहे हैं, तो आपको 4.0 कंपाइलर का उपयोग करना होगा। और इसका मतलब है कि आपको सर्वर पर .NET 4.0 चलाने की आवश्यकता है जहां आप इस कोड को तैनात करना चाहते हैं। वैकल्पिक रूप से - कोड डिफ़ॉल्ट पैरामीटर का उपयोग करने के लिए नहीं पुनर्लेखन, कि मुश्किल नहीं है - सिर्फ इस तरह एक अधिभार जोड़ें:

public void DoThis() {DoThis(false);} 
public void DoThis(bool aValue) {...} 

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

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