TFS2015 बिल्ड(बिल्ड.vnext) और NuGet पैकेज को कस्टम पैकेज स्रोतों का उपयोग करने के लिए कैसे प्राप्त करें




tfsbuild vsts (6)

  1. समाधान के nuget.config फ़ाइल में अपने कस्टम NuGet फ़ीड URL को निर्दिष्ट करें। इस फ़ाइल में किसी भी उपयोगकर्ता नाम और पासवर्ड को संग्रहीत न करें।

    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="MyCompany" value="https://nuget.mycompany.com:443/nuget" />
    
  2. VSTS में अपनी बिल्ड परिभाषा में उपयोगकर्ता नाम और पासवर्ड चर बनाएं। चर को एन्क्रिप्ट किया जा सकता है और किसी भी बिल्ड लॉग आउटपुट में प्रदर्शित नहीं किया जाएगा। यहाँ मैं MyCompanyNugetUser और MyCompanyNugetPwd वैरिएबल बनाऊंगा

  3. अपने बिल्ड चरणों में, हम पहली कार्रवाई के रूप में एक पॉवर्सशैली स्क्रिप्ट जोड़ते हैं, यह उपयोगकर्ता नाम और पासवर्ड चर पढ़ेगा और निर्माण मशीन पर उपयोगकर्ता के स्तर nuget.config फ़ाइल को अपडेट करेगा। नीचे मेरी इनलाइन पॉवर्सशेल स्क्रिप्ट से कोड स्निपेट है:

    तर्क:

    $(MyCompanyNugetUser) $(MyCompanyNugetPwd)
    

    स्क्रिप्ट:

    param($user, $pwd)
    
    $nugetFile = "$ENV:AGENT_HOMEDIRECTORY\agent\worker\tools\nuget.exe"
    Write-Output "Looking for nuget.exe in $nugetFile"
    
    if (-not (Test-Path $nugetFile))
    {
      Write-Error "nuget.exe could not be located."
      return
    }
    
    Write-Output "nuget.exe located"
    
    $cmd = "$nugetFile sources add -name MyCompany -source https://nuget.mycompany.com:443/nuget -username $user -password $pwd -StorePasswordInClearText"
    Write-Output $cmd
    iex $cmd
    
  4. अगला, हम अभी Microsoft के टेम्प्लेट से डिफ़ॉल्ट NuGet Restore स्टेप को निष्पादित करना जारी रखते हैं

यहाँ और अधिक: https://codingcase.com/2016/07/27/vsts-build-setup-custom-nuget-feeds-with-authentication/

HTH

मैं हमारे TFS2015 बिल्ड ( TFSBuild vnext ) को वीएस टीम सर्विसेज के साथ लाने की कोशिश कर रहा हूं।

इस प्रकार अब तक अधिकांश ब्लॉग और दस्तावेज़ीकरण मददगार रहे हैं, सिवाय इसके कि जब कोई प्रोजेक्ट बनाने की कोशिश की जा रही है जो NuGet स्वचालित पैकेज रिस्टोर के लिए कस्टम पैकेज स्रोतों का उपयोग करता है।

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

विफलता कस्टम / निजी पैकेज स्रोत द्वारा स्थापित VS कॉन्फ़िगरेशन से नहीं उठाए जाने के कारण थी, इसलिए उन पैकेजों को नहीं मिला। डिफ़ॉल्ट NuGet पैकेज फ़ीड से पारंपरिक पैकेज समस्या के बिना पुनर्स्थापित किया।

एजेंट का उपयोग करते समय मैं उपयोग करने के लिए NuGet के लिए अतिरिक्त पैकेज स्रोत कैसे निर्दिष्ट करूं?

संपादित करें: vcastro ने NuGet Installer बिल्ड स्टेप और उस बिल्ड स्टेप के कॉन्फ़िगरेशन में परिभाषित पथों के बारे में पूछा। ऊपर Visual Studio Build स्टेप और एकीकृत विकल्प का उपयोग कर रहा है जिसमें NuGet पुनर्स्थापना पैकेज है। संदर्भ के लिए इस छवि को देखें:


एक नया VSTS टास्क है जिसे "NuGet Installer" कहा जाता है, इससे आप अपनी NuGet.config फ़ाइल में जांच कर सकते हैं और विभिन्न पैकेज स्रोतों को निर्दिष्ट कर सकते हैं। MSBuild चलाने से पहले इस कार्य को चलाएँ।

यदि आप VSTS NuGet फ़ीड का उपयोग कर रहे हैं, तो आपको पैकेजों को डाउनलोड करने में सक्षम बनाने के लिए फ़ीड में बिल्ड सेवा खाता जोड़ना होगा https://www.visualstudio.com/get-started/package/use/common-identities


एक समाधान (मेरे लिए काम करता है) tfs के लिए खाता बदल रहा है \ रोमिंग \ Nuget। बस इतना ही!


टीम फाउंडेशन सर्वर 2015 के RTM में आपको "NuGet Installer" प्रकार का बिल्ड स्टेप जोड़ना होगा, और वास्तविक बिल्ड प्रक्रिया को चलाने से पहले समाधान फ़ाइल के पैकेज को पुनर्स्थापित करना होगा। इस कार्य में आप तर्क पास कर सकते हैं -ConfigFile path/to/nuget.config जिसमें आपका रिपॉजिटरी पथ है।

उदाहरण के लिए:

<configuration>
  <packageSources>
    <add key="Internal Nuget" value="\\srv-nuget\Repo" />
  </packageSources>
</configuration>


यदि आपको केवल UWP पर काम करने में परेशानी हो रही है, तो सुनिश्चित करें कि आपके पास सही तरीके से लिखे गए पैकेज नाम का CASE है। यदि मामला गलत है, तो (केवल UWP के लिए) हमारा बिल्ड सर्वर बिल्ड को विफल करता है।

उदाहरण के लिए, यदि आपके पास Com.Company.Compords नामक पैकेज है और "इंस्टॉल-पैकेज com.company.compords " का उपयोग करके पैकेज को अपडेट करें (प्रारंभिक पत्र के मामले पर ध्यान दें) तो बिल्ड सर्वर पर UWP बिल्ड खोजने में विफल हो सकता है आपके स्थानीय स्टोर में पैकेज।


वैकल्पिक रूप से आप सभी NuGet पैकेजों को पुनर्स्थापित करने के लिए अपने बिल्ड कॉन्फ़िगरेशन में Visual Studio Build चरण से पहले एक NuGet Installer बिल्ड चरण भी जोड़ सकते हैं।

वहां आप अपने निजी रेपो के स्थान को nuget.exe तर्क के रूप में पारित कर सकते हैं:

-source "https://www.nuget.org/api/v2/;http://mynugetserver"







nuget-package-restore