2016-07-09 9 views
6

के लिए परिभाषित निर्भरता है। मुझे अपने स्वयं के nuget पैकेज को पैकेज करने में कोई समस्या है, जिसमें ऑटोमैपर 5.0.2 शामिल है। यह केवल विजुअल स्टूडियो टीम सर्विसेज (VSTeam) बिल्ड सर्वर के भीतर एक त्रुटि उत्पन्न कर रहा है।NuGet पैक कमांड चलाते समय मुझे त्रुटि मिलती है: 'ऑटोमैपर' पहले से ही 'NETStandard.Library'

मेरे परियोजना नेट 4.6.1

ठीक करने के कोई भी विचार उपयोग कर रहा है?

2016-07-08T23:46:44.5801667Z C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agents\1.102.0\agent\worker\tools\NuGet.exe pack "C:\a\1\s\Project.csproj" -OutputDirectory "C:\a\1\s\Project\bin\release" -Properties Configuration=release -IncludeReferencedProjects 
2016-07-08T23:46:45.0458195Z MSBuild auto-detection: using msbuild version '14.0' from 'C:\Program Files (x86)\MSBuild\14.0\bin'. 
2016-07-08T23:46:45.0468395Z Attempting to build package from 'Project.csproj'. 
2016-07-08T23:46:45.1942694Z Packing files from 'C:\a\1\s\Project\bin\Release'. 
2016-07-08T23:46:45.3942642Z ##[error]**'AutoMapper' already has a dependency defined for 'NETStandard.Library'.** 
2016-07-08T23:46:45.4142626Z ##[error]System.Exception: Unexpected exit code 1 returned from tool NuGet.exe 
2016-07-08T23:46:45.4152639Z ##[error] at Microsoft.TeamFoundation.DistributedTask.Task.Internal.PowerShell.InvokeToolCmdlet.ProcessRecord() 
2016-07-08T23:46:45.4152639Z ##[error] at System.Management.Automation.CommandProcessor.ProcessRecord() 

मैं भी GitHub पर एक मुद्दा खोला: https://github.com/AutoMapper/AutoMapper/issues/1499

+1

आपको यहां बताए गए NuGet के संस्करण को अपडेट करने की आवश्यकता है - http://stackoverflow.com/questions/38247961/nuget-package-manager-automapper-already-has-a- निर्भरता- परिभाषित-for- माइक्रो –

+0

मुझे लगा कि यह मामला था। मुझे नहीं पता कि विजुअल स्टूडियो ऑनलाइन के लिए होस्टेड बिल्ड सर्वर पर ऐसा कैसे करें। – Phobis

+0

ऐसा लगता है कि होस्टेड बिल्ड सर्वर NuGet 3.3.0.212 – Phobis

उत्तर

4

मैं नवीनतम NuGet डाउनलोड करने के लिए में एक PowerShell स्क्रिप्ट डालकर/वैकल्पिक हल ठीक करने के लिए इस मुद्दे को सक्षम था

यहाँ त्रुटि है। तब मैंने सभी NuGet कार्यों को इस नए nuget.exe पर इंगित किया। पेशेवर: बिल्ड फिर से काम कर रहे हैं, विपक्ष: प्रत्येक निर्माण NuUet को फिर से डाउनलोड करता है, जिससे NuGet.org पर अनावश्यक भार होता है।

$sourceNugetExe = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" 
$targetNugetExe = "$(build.sourcesdirectory)/nuget.exe" 
Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe 
Set-Alias nuget $targetNugetExe -Scope Global -Verbose 
nuget 
+0

स्क्रिप्ट मेरे लिए काम नहीं कर रही थी (मुझे मिल गया है 'Build.SourcesDirectory' शब्द को cmdlet, function, script file, या ऑपरेट करने योग्य प्रोग्राम के नाम के रूप में पहचाना नहीं गया है।), लेकिन जो काम किया गया वह बस डाउनलोड हो रहा था https://dist.nuget.org/win-x86-commandline/latest/nuget.exe फ़ाइल, मेरी प्रोजेक्ट में फ़ाइल को प्रतिस्थापित कर रहा है, और फिर बस हर जगह वीएसओ सेटिंग में "$ (Build.SourcesDirectory) \ n ngetget को NuGet पथ सेट कर रहा है। \ nuget.exe " –

+0

प्रत्येक निर्माण पर' nuget.exe' डाउनलोड करने के बजाय, मैंने इसे स्रोत नियंत्रण में शामिल किया और इसके बजाय इसका उपयोग करने के लिए बिंदु निर्माण बिंदु। लेकिन एक ही समस्या - nuget संस्करण सामान तोड़ रहा है। – trailmax

+0

@VictorF: स्टैंडअलोन पावरशेल स्क्रिप्ट के लिए इसे '$ PSScriptRoot' (यानी' $ targetNugetExe = "$ PSScriptRoot/nuget.exe" ') –

8

आप अपने दृश्य स्टूडियो संस्करण के लिए नए Nuget संस्करण को स्थापित करने की जरूरत है:

यहाँ मेरी PowerShell है।

यहाँ Nuget gallery

+2

का उपयोग किया जा सकता है बेशक कुछ मूर्ख इस तरह का तय होगा। lol धन्यवाद, यह मेरे लिए काम किया। – Nicholas

0

हैं से प्राप्त करें किसी टीम शहर आप भी उपयोग/Nuget के नए संस्करण स्थापित करने की आवश्यकता का उपयोग कर।

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