2016-06-30 7 views
5

के साथ असफल रहा है मैंने हाल ही में प्रोजेक्ट.जेसन का उपयोग करके .NET कोर को लक्षित करने के लिए अपने पोर्टेबल क्लास लाइब्रेरी को अपडेट किया है, और नया नेटस्टैन्ड 1.0 फ्रेमवर्क मोनिकर। मेरी समझ यह है कि यह अब Nuget 3.4 में समर्थित है। मैं अपने प्रोजेक्ट के लिए निम्नलिखित project.json है:विजुअल स्टूडियो टीम सर्विसेज बिल्ड पैकेज पुनर्स्थापित करें Project.json netstandard1.0 लक्ष्य

{ 
    "supports": {}, 
    "dependencies": { 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1", 
    "NETStandard.Library": "1.6.0" 
    }, 
    "frameworks": { 
    "netstandard1.0": {} 
    } 
} 

यह दृश्य स्टूडियो 2015 अपडेट से महान बनाता है 3.

हालांकि, जब VSTS का उपयोग कर (था दृश्य स्टूडियो ऑनलाइन) का निर्माण, यह अब मुझे देता है पैकेज के दौरान निम्न त्रुटि पुनर्स्थापित कदम:

The project 'MyProject' does not specify any target frameworks in 'C:\a\1\s\MyProject\project.json'. 

आदेश यह क्रियान्वित करने से पता चलता है:

NuGet.exe restore "C:\a\1\s\Build.sln" -NonInteractive -configfile "C:\a\1\NuGet\newNuGet.config" 

क्या यह समाधान के खिलाफ पुनर्स्थापना निष्पादित करने के कारण है? या शायद वीएसटीएस बिल्ड कार्य अभी तक Nuget 3.4 का उपयोग नहीं कर रहा है?

+1

@EricLiu ['NETStandard.Library' 1.6.0] (https://www.nuget.org/packages/NETStandard.Library/1.6.0) NuGet पर' NETStandard.Library' का एकमात्र रिलीज़ संस्करण है। इस पर भरोसा करना ठीक है कि भले ही आप 'नेटस्टैंडर्ड' के निचले संस्करण का उपयोग कर रहे हों। – svick

+0

मुझे यह उल्लेख करना चाहिए कि यह प्रोजेक्ट प्रोजेक्ट्स में नया "लक्ष्य नेट स्टैंडर्ड लाइब्रेरी" लिंक चुनने के बाद विजुअल स्टूडियो 2015 अपडेट 3 द्वारा बनाया गया प्रोजेक्ट.जेसन है। अगर यह गलत था तो मुझे आश्चर्य होगा ... – pianomanjh

+0

@EricLiu हां, लेकिन वह 'netstandard1.0' परियोजनाओं के लिए भी बिल्कुल ठीक है। रिलीज संस्करण! = लक्ष्य ढांचे संस्करण। (यह मूर्खतापूर्ण है कि वे वही देखते हैं) –

उत्तर

0

एक ही समस्या थी। इस समस्या का स्रोत बिल्ड-सर्वर पर "Nuget.exe" का संस्करण था। 3.2.एक्स स्थापित किया गया था लेकिन आपको संस्करण 3.4.4-आरटीएम की आवश्यकता है। Nuget खुद को अपडेट कर सकते हैं।

Nuget.exe अद्यतन करने के लिए: कमांडलाइन खोलने के लिए और टाइप "C: \ PathToNuget \ nuget.exe अद्यतन -Self"

+0

मैं उल्लेख करना भूल गया, मैं होस्टेड बिल्ड का उपयोग कर रहा हूं। कमांड लाइन कार्य के माध्यम से nuget चलाने के लिए कोई विचार है? तर्क के रूप में "अद्यतन-स्वयं" के साथ nuget.exe का उपयोग करना एक "फ़ाइल नाम निष्पादन योग्य फ़ाइल के लिए पूर्ण पथ इंगित नहीं करता है।" – pianomanjh

+0

आप अपने भंडार में nuget.exe जोड़ सकते हैं और nuget-restore चरण में आप nuget-exe के पथ को निर्दिष्ट कर सकते हैं। ऐसा करने से आप nuget.exe को अपने आप अपडेट कर सकते हैं और आपके पास प्रयुक्त संस्करण –

4

आप उन्नत अनुभाग को विस्तृत सकता है, और Nuget के नवीनतम संस्करण का चयन करें। अक्टूबर 2016 तक यह नुजेट 3.5 आरसी 2

+0

पर नियंत्रण है हम Nuget 3.5 आरसी 2 (1829 बिल्ड) का उपयोग करते हैं, लेकिन हमें अभी भी निम्न त्रुटि मिलती है: .. \ project.json (15,26): त्रुटि NU1001: निर्भरता NetStandard.Library> = 1.6.0 को हल नहीं किया जा सका। जब हम स्थानीय रूप से Nuget के इस संस्करण को चलाने का प्रयास करते हैं और बाद में डॉटनेट बिल्ड चलाते हैं तो यह बिना किसी समस्या के काम करता है। – ghost

1

मेरा मानना ​​है कि इसे पहले ही हल कर लिया गया है और आप NuGet के वैध संस्करण का उपयोग करते हैं, लेकिन आप NuGet इंस्टॉलर के ठीक बाद, एक नया निर्माण चरण के रूप में कमांड लाइन भी जोड़ सकते हैं, और dotnet restore (टूल: dotnet, तर्क: restore) का आह्वान करें।

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