Nuget

2012-04-05 18 views
11

के साथ तीसरे पक्ष के लाइसेंस ढूँढना मैं एक NuGet नौसिखिया का थोड़ा सा हूँ और मेवेन दुनिया से आया हूँ।Nuget

हाल ही में मुझे हमारी परियोजनाओं के लिए तीसरे पक्ष की लाइसेंस जानकारी अपडेट करने का काम सौंपा गया है। मेवेन प्रोजेक्ट्स के साथ काम करना मैं लाइसेंस जानकारी प्राप्त करने के लिए license:download-licenses प्लगइन का उपयोग करने में सक्षम हूं।

मुझे क्या आश्चर्य है कि क्या यह जानकारी Nuget का उपयोग करके प्राप्त करने का कोई तरीका है? अधिमानतः कमांड लाइन इंटरफ़ेस का उपयोग करके मैं इसे सीआई बिल्ड स्तर पर स्वचालित कर सकता हूं। बड़े मैनुअल प्री बिल्ड चरण से इसे हटाने के लिए।

संपादित करें:

जब से मैं किसी भी उपयोगिताओं ऐसा करने के लिए खोजने के लिए सक्षम नहीं था मैं एक साथ LegSec command line utility डाल दिया।

+0

आपकी परियोजना के लिंक को पोस्ट करने के लिए धन्यवाद! मैंने आज LegSec का उपयोग किया ... कमांड लाइन उपयोग को समझना थोड़ा मुश्किल था (कुछ परीक्षण + त्रुटि), लेकिन कार्यक्षमता बहुत अच्छी थी। – crimbo

+0

स्पष्ट रूप से वे जानते हैं कि 2013 से इसे कैसे किया जाए, इसे प्रोग्रामेटिक रूप से कभी नहीं दिखाया गया है: https://blog.nuget.org/20131011/friendly-license-names.html। मैंने एक मुद्दा खोला जिसे आप ऊपर उठाना चाहते हैं: https://github.com/NuGet/Home/issues/5793। –

उत्तर

11

जहां तक ​​मुझे पता है कि सीआई बिल्ड के हिस्से के रूप में सीधे कमांड लाइन से लाइसेंस जानकारी प्राप्त करने के लिए कुछ भी उपलब्ध नहीं है। आपको .nupkg ज़िप फ़ाइल खोलने के लिए एक एप्लिकेशन बनाने की आवश्यकता होगी, .nuspec फ़ाइल से लाइसेंस यूआरएल निकालें और इस यूआरएल से लाइसेंस डाउनलोड करें।

वैकल्पिक रूप से आप विजुअल स्टूडियो के अंदर पैकेज प्रबंधक कंसोल विंडो का उपयोग कर सकते हैं और कुछ पावरशेल लाइसेंस फ़ाइलों को डाउनलोड कर सकते हैं।

एक साधारण उदाहरण जो किसी प्रोजेक्ट में सभी पैकेजों के लिए लाइसेंस फ़ाइल प्राप्त करता है नीचे दिखाया गया है। समाधान में सभी परियोजनाओं को प्राप्त करने के लिए इसे विस्तारित करने की आवश्यकता होगी, जिसे आप गेट-प्रोजेक्ट cmdlet के साथ करने में सक्षम होना चाहिए। लाइसेंस को डाउनलोड करने के लिए अभी भी किसी को स्क्रिप्ट चलाने की आवश्यकता होगी। ,

@(@(Get-Project -All | ForEach-Object { 
    Get-Package -ProjectName $.ProjectName 
}) | Select Id -Unique) | ForEach-Object { 
    $pkg = $_ 
    $pkgId = $_.Id 
    if ($pkgId -notlike 'microsoft*') { 
     $url = Open-PackagePage $pkgId -License -WhatIf -PassThru 
     Write-Host "$pkgId $url" 
    } 
} 
+2

बस एक नोट - वीएस2015 'लाइसेंस यूआरएल' में हमेशा एक खाली स्ट्रिंग देता है। NuGet प्रलेखन का कहना है कि 'लाइसेंसयूआरएल' को वार्ड पर v3.x से हटा दिया जाएगा, लेकिन किसी भी विकल्प –

+2

के बारे में उल्लेख नहीं है लाइसेंसयूआरएल को NuGet 3.4 या उससे ऊपर में जोड़ा गया है। –

0

मैं निम्न आदेश के साथ लाइसेंस जानकारी पाने में कामयाब रहे बस समाधान पर एक दायाँ क्लिक करें।

0

मेरा उत्तर here

है कि यह आप के लिए करता है दृश्य स्टूडियो के लिए एक बहुत ही उपयोगी एक्सटेंशन नहीं है की जाँच करें साथ:

$wc = New-Object System.Net.WebClient 
Get-Package -ProjectName YourProject | ForEach-Object { 
    $wc.DownloadFile($_.LicenseUrl, 'd:\licenses\' + $_.Id + ".html") 
}