2011-08-29 10 views
8

मैं मोनो के xbuild 2.10.5.0 के साथ वीएस -2010 परियोजनाओं का निर्माण करता हूं। परियोजनाएं लक्ष्य ढांचे के रूप में '.NET Framework 3.5 क्लाइंट प्रोफ़ाइल' का उपयोग करती हैं (वे 3.5 संगत होने चाहिए और मुझे क्लाइंट प्रोफ़ाइल भागों से अधिक की आवश्यकता नहीं है)।इन मोनो/एक्सबिल्ड चेतावनियों का क्या अर्थ है और मैं उन्हें कैसे ठीक करूं?

मैं निम्नलिखित चेतावनी हो रही है:

Build succeeded. 

Warnings: 

c:\Project\MyProject.csproj (default targets) -> C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets (GetReferenceAssemblyPaths target) -> 
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets: warning : Unable to find framework corresponding to the target framework moniker '.NETFramework,Version=v3.5,Profile=Client'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior. 

c:\Project\MyProject.csproj (default targets) -> C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets (ResolveAssemblyReferences target) -> 
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets: warning : Reference 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' not resolved 
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets: warning : Found a conflict between : 'System' and 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System' reference. 
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets: warning : Found a conflict between : 'System.Core' and 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System.Core' reference. 

मुझे डर है कि मैं इन समझ में नहीं आता हूँ और केवल गूगल "Unable to find framework corresponding to the target framework moniker" के लिए मारा कि त्रुटि संदेश के लिए प्रतिबद्ध है।

इन चेतावनियों का क्या अर्थ है और मैं उन्हें कैसे ठीक कर सकता हूं? क्या मोनो द्वारा 'क्लाइंट प्रोफाइल' समर्थित नहीं है? यदि ऐसा है, तो मुझे मोनो दस्तावेज़ में इसके बारे में कुछ भी नहीं मिला। क्या अनसुलझा mscorlib संदर्भ का कारण बनता है और ये दो System संदर्भ कहां हैं, यह एक संघर्ष की रिपोर्ट करता है?

उत्तर

7

आप सही ढंग से अनुमान लगा रहे हैं - मोनो 'क्लाइंट' प्रोफ़ाइल का समर्थन नहीं करता है (उदाहरण के लिए 'क्लाइंट' के किसी भी उल्लेख के लिए खोज Mono version of 3.5 Microsoft.Common.targets), केवल पूर्ण 3.5 और 4.0 प्रोफाइल। उन्हें ठीक करने के लिए, आपको अपनी प्रोजेक्ट फ़ाइल में समर्थित प्रोफाइलों में से एक निर्दिष्ट करने की आवश्यकता है। प्रोफ़ाइल चयन केवल निर्माण के दौरान उपलब्ध संदर्भों के सेट को प्रतिबंधित करता है, 'क्लाइंट' प्रोफ़ाइल के साथ संकलित एक असेंबली 'पूर्ण' प्रोफ़ाइल पर ठीक काम करेगी।

mscorlib, Version=2.0.0.0 अनसुलझा संदर्भ हो रहा है क्योंकि आप 4.0 प्रोफ़ाइल (जो डिफ़ॉल्ट फ़ॉलबैक है) के साथ संकलित कर रहे हैं। एक बार जब आप अपनी प्रोफ़ाइल को समर्थित मान पर सेट कर लेंगे तो यह गायब हो जाएगा। अगर आप अपनी प्रोजेक्ट फ़ाइल को बदलना नहीं चाहते हैं, तो आप xbuild /p:TargetFrameworkProfile="" के साथ निर्माण कर सकते हैं, जो असेंबली के 3.5 सेट को सही ढंग से चुनता है।

+1

इसके लिए एक प्रलेखन लिंक मिला? क्या आप मोनो और वीएस दोनों के साथ परियोजनाओं को विकसित करना चाहते हैं, तो यह एक महत्वपूर्ण महत्वपूर्ण सीमा नहीं है? मुझे यकीन नहीं है कि क्या मेरा ग्राहक इस परियोजना को पूर्ण 3.5 में पुनः लक्षित करने के साथ ठीक है। –

+0

मेरा जवाब अपडेट किया गया। – skolima

+0

यह वास्तव में यह नहीं समझाता है कि क्यों मोनो के लिए समर्थन की कमी है (और चाहे वह जानबूझकर है या अभी तक लागू नहीं हुआ है) और मुझे इस सीमा के आसपास कैसे काम करना है। मुझे इसके बारे में मोनो इश्यू ट्रैकर पर कुछ भी नहीं मिला है। –

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

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