visual studio 2010 - कार्य आरंभ करने में त्रुटि DownloadNuGet: पंजीकृत कार्य नहीं है DownloadNuGet




visual-studio-2010 mono (2)

इसे डाउनलोड करने के लिए एक स्क्रिप्ट बनाएं। उदाहरण के लिए

wget http://nuget.org/nuget.exe
cp nuget.exe ./.nuget/NuGet.exe
chmod a+x ./.nuget/NuGet.exe

यह आपके NuGet.exe को अद्यतित रखता है। स्रोत

मैं सी # एप्लिकेशन द्वारा मोनो पर उबंटू का उपयोग करके संकलित करने का प्रयास कर रहा हूं। मैं अपने जीआईटी रिपॉजिटरी में nuget.exe को शामिल करने की आवश्यकता को रोकने की कोशिश कर रहा हूं और इस सवाल का स्वीकार किए गए उत्तर का पालन किया है

यह काम करता है अगर मैं दृश्य स्टूडियो 2010 का उपयोग कर रहा हूं। जब मैं अनुप्रयोग का निर्माण करता हूं, तो nuget.exe को अपेक्षा के अनुसार डाउनलोड किया गया है।

हालांकि, जब मैं मोनो और एक्सबिल्ड का उपयोग करने का प्रयास करता हूं, तो मुझे निम्न त्रुटि मिलती है I

Target Build:
    Project "/home/builduser/SpecialBuildProj/BuildTrade/BuildTrade.csproj" (default target(s)):
    Target CheckPrerequisites:
        Project "/home/builduser/SpecialBuildProj/.nuget/NuGet.targets" (_DownloadNuGet target(s)):
            Target _DownloadNuGet:
: error : Error initializing task DownloadNuGet: Not registered task DownloadNuGet.
            Task "DownloadNuGet" execution -- FAILED
            Done building target "_DownloadNuGet" in project "/home/builduser/SpecialBuildProj/.nuget/NuGet.targets".-- FAILED
        Done building project "/home/builduser/SpecialBuildProj/.nuget/NuGet.targets".-- FAILED
    Task "MsBuild" execution -- FAILED
    Done building target "CheckPrerequisites" in project "/home/builduser/SpecialBuildProj/BuildTrade/BuildTrade.csproj".-- FAILED
    Done building project "/home/builduser/SpecialBuildProj/BuildTrade/BuildTrade.csproj".-- FAILED
Task "MSBuild" execution -- FAILED
Done building target "Build" in project "/home/builduser/SpecialBuildProj/SpecialBuildProj.sln".-- FAILED
Done building project "/home/builduser/SpecialBuildProj/SpecialBuildProj.sln".-- FAILED

केवल एक चीज जो मैंने बदल दी है वह DownloadNuGetExe = true को nuget.targets में सेट कर रहा है, ताकि रेखा इस तरह दिखती है:

<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">true</DownloadNuGetExe>

मेरा प्रश्न: मैं इसे कैसे सेट कर सकता हूं ताकि मोनो / एक्सबिल्ड का उपयोग करने वाले व्यवहार उसी तरह के होते हैं जब दृश्य स्टूडियो का इस्तेमाल किया जा रहा है (अर्थात्, उस शख्स को स्वचालित रूप से डाउनलोड किया गया है)?

संपादित करें यह प्रयोग UsingTask लाइन है जो NuGet.targets फ़ाइल में दिखाई देता है।

<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
    <ParameterGroup>
        <OutputFilename ParameterType="System.String" Required="true" />
    </ParameterGroup>
    <Task>
        <Reference Include="System.Core" />
        <Using Namespace="System" />
        <Using Namespace="System.IO" />
        <Using Namespace="System.Net" />
        <Using Namespace="Microsoft.Build.Framework" />
        <Using Namespace="Microsoft.Build.Utilities" />
        <Code Type="Fragment" Language="cs">
            <![CDATA[
            try {
                OutputFilename = Path.GetFullPath(OutputFilename);

                Log.LogMessage("Downloading latest version of NuGet.exe...");
                WebClient webClient = new WebClient();
                webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);

                return true;
            }
            catch (Exception ex) {
                Log.LogErrorFromException(ex);
                return false;
            }
        ]]>
        </Code>
    </Task>
</UsingTask>

आज यह एक समस्या है, जो ज़ामिन स्टूडियो फॉर बिज़नेस और मैकोज़ के साथ है। मुझे फेसबुक एसडीके बनाने की कोशिश करते समय इस त्रुटि का सामना करना पड़ा। प्रोजेक्ट बिल्ड बनाने के लिए मुझे प्रोजेक्ट फाइल में न्यूगेट लक्ष्य संदर्भ को निकालना पड़ा। ज़ामिरीन स्टूडियो में न्यूगेट अपडेट का निर्माण हुआ है, इसलिए मैं मैन्युअल रूप से पैकेज डाउनलोड करने में सक्षम था।