2012-07-25 13 views
10

मैंने न्यूजेट में नया पैकेज जोड़ा है (मैं प्रोजेक्ट में पैकेज के संदर्भ को जोड़ने के बारे में बात नहीं कर रहा हूं)। मैंने सर्वर पर नए पैकेज जोड़े हैं ताकि अन्य लोग अपनी परियोजनाओं में उस पैकेज का उपभोग/उपयोग कर सकें।सर्वर से NuGet पैकेज को कैसे निकालें?

कहो पैकेज का नाम Parser1.0.0.0.nupkg

था

समस्या मैं एक निर्भरता को जोड़ने के लिए भूल गया है। अब मैं संपादित करना या हटाना चाहता हूं और फिर एक सही जोड़ना चाहता हूं। लेकिन मैं इसके संस्करण संख्या को बदलना नहीं चाहता हूं।

कोई भी जानता है कि यह कैसे करें?

उत्तर

14

पैकेजों को स्थायी रूप से हटाने का समर्थन नहीं है, लेकिन आप नियंत्रित कर सकते हैं कि वे कैसे सूचीबद्ध हैं। (मान लीजिए कि आप nuget.org के बारे में बात कर रहे हैं)।

साइन इन करने के बाद, हटाएं पैकेज पृष्ठ पर अतिरिक्त जानकारी है। जैसे https://nuget.org/packages/Parser/1.0.0.0/Delete

हटाने पैकेज पेज से nuget के विवरण का हवाला देते हुए:

"मैं अपने पैकेज क्यों नहीं हटा सकते हमारी नीति केवल स्थायी रूप से NuGet पैकेज, इस तरह के पैकेज कि पासवर्ड होते हैं, दुर्भावनापूर्ण के रूप में है कि वास्तव में इसकी जरूरत को हटाने के लिए है/हानिकारक कोड इत्यादि। यह नीति रूबी रत्न जैसे अन्य पैकेज प्रबंधकों द्वारा नियोजित नीतियों के समान ही है।

पैकेज को अनलिस्टिंग करने से पैकेज को NuGet में उपलब्ध होने से हटा दिया जाएगा। पैकेज अभी भी डाउनलोड के लिए उपलब्ध है तीन मुख्य कारणों के लिए निर्भरता।

अन्य पैकेज उस पैकेज पर निर्भर हो सकते हैं। ये पैकेज आवश्यक रूप से इस गैलरी में नहीं हो सकते हैं। यह सुनिश्चित करता है कि पैकेज (पैकेज पुनर्स्थापित) के बिना NuGet का उपयोग करने वाले लोग टूटा नहीं जाएंगे। कि महत्वपूर्ण समुदाय के स्वामित्व वाले संकुल बड़े पैमाने पर नहीं हटाया जाता है सुनिश्चित करता है। "

मैं पिछले पैकेज unlisting और निर्भरता को जोड़ने के बाद 1.0.0.1 के संस्करण जोड़ने से सुझाव है।

+0

हाँ, ओपी संस्करण संख्या टक्कर के लिए नहीं चाहते हैं, लेकिन जब आप सार्वजनिक में एक स्पिन के लिए अपने पैकेज लेते हैं, आप सड़क के नियमों का पालन करना पड़ता है। इस स्क्रिप्ट के विविधता के लिए –

7

मान लें कि आप एक निजी NuGetGallery सर्वर व्यवस्थापन और एमएसएसक्यूएल सर्वर डेटाबेस तक पहुंच है, आप गैलरी के अस्तित्व के ज्ञान को हटाकर पैकेज को हटा सकते हैं।

आपको शायद इसका कभी भी उपयोग नहीं करना चाहिए, लेकिन विज्ञान के हित में, यहां बताया गया है कि आप अच्छे कारणों की उपेक्षा कैसे करेंगे (ध्यान दें कि यह सभी संस्करण को हटा देगा एक पैकेज 'MyNastyPackage') कहा जाता है की रों:

DECLARE @PackageRegistrationKey int 
SELECT @PackageRegistrationKey = [Key] 
FROM PackageRegistrations 
WHERE Id = 'MyNastyPackage' 

BEGIN TRANSACTION 
DELETE pf 
FROM [NuGetGallery].[dbo].[PackageFrameworks] pf 
JOIN Packages p ON pf.Package_Key = p.[Key] 
WHERE PackageRegistrationKey = @PackageRegistrationKey 
DELETE pa 
FROM [NuGetGallery].[dbo].[PackageAuthors] pa 
JOIN Packages p ON pa.PackageKey = p.[Key] 
WHERE PackageRegistrationKey = @PackageRegistrationKey 
DELETE gs 
FROM [NuGetGallery].[dbo].[GallerySettings] gs 
JOIN [PackageStatistics] ps ON gs.DownloadStatsLastAggregatedId = ps.[Key] 
JOIN Packages p ON ps.PackageKey = p.[Key] 
WHERE PackageRegistrationKey = @PackageRegistrationKey 
DELETE ps 
FROM [NuGetGallery].[dbo].[PackageStatistics] ps 
JOIN Packages p ON ps.PackageKey = p.[Key] 
WHERE PackageRegistrationKey = @PackageRegistrationKey 
DELETE pd 
FROM [NuGetGallery].[dbo].[PackageDependencies] pd 
JOIN Packages p ON pd.PackageKey = p.[Key] 
WHERE PackageRegistrationKey = @PackageRegistrationKey 
DELETE 
FROM [NuGetGallery].[dbo].[Packages] 
WHERE PackageRegistrationKey = @PackageRegistrationKey 
DELETE por 
FROM PackageOwnerRequests por 
JOIN PackageRegistrations pr ON pr.[Key] = por.PackageRegistrationKey 
WHERE pr.[Key] = @PackageRegistrationKey 
DELETE pro 
FROM PackageRegistrationOwners pro 
JOIN PackageRegistrations pr ON pr.[Key] = pro.PackageRegistrationKey 
WHERE pr.[Key] = @PackageRegistrationKey 
DELETE FROM PackageRegistrations 
WHERE [Key] = @PackageRegistrationKey 
COMMIT TRANSACTION 
+0

(एकाधिक पैकेज, विशिष्ट पैकेज संस्करण): https://gist.github.com/grenade/4a8b6edcd10308a5882f) – grenade

0

खैर, अपने विशेष मामले में आप किसी निर्भरता मैन्युअल .nuspec फ़ाइल का संपादन आप अपने nuget सर्वर पर पहुँच है या नहीं द्वारा जोड़ सकते हैं। Nuget सर्वर (जहां यह अपनी .nupkg फ़ाइलों को संग्रहीत करता है) की डेटा निर्देशिका खोलें, पैकेज ढूंढें और या तो NugetPackageExplorer टूल का उपयोग करें या मेटाडेटा मैन्युअल रूप से संपादित करें (.nupkg फ़ाइल एक ज़िप संग्रह है, इसे खोलें और जोड़ने के लिए YourPackageName.nuspec फ़ाइल को संपादित करें एक निर्भरता)। यह इस के समान दिखाई देगा:

<dependencies> 
    <dependency id="RouteMagic" version="1.1.0" /> 
    <dependency id="RouteDebugger" version="1.0.0" /> 
</dependencies> 
1

आप क्लिक करते हैं पैकेज हटाएँ पैकेज के उप मेनू में (बाईं ओर), तो आप एक पृष्ठ पर पुनः निर्देशित कर रहे हैं आपको बता इस:

यदि आपको स्थायी रूप से हटाए गए पैकेज की आवश्यकता है, तो संपर्क समर्थन लिंक पर क्लिक करें और हम इसकी देखभाल करेंगे

मेरे लिए यह पूरी तरह से ठीक काम करता है, मैंने समर्थन req से संपर्क किया मेरे पैकेज को हटाने के लिए तैयार करना क्योंकि मैंने गलती से इसे स्टेजिंग पर्यावरण के बजाय उत्पादक NuGet सर्वर पर अपलोड किया था।

हालांकि, मैं हमेशा staging.nuget.com का उपयोग करके अपने पैकेज का परीक्षण करने की सलाह देता हूं। फिर आप परीक्षण स्टूडियो में परीक्षण स्टूडियो में पैकेजिंग भंडार के रूप में स्टेजिंग वातावरण जोड़ सकते हैं।

1

निजी NuGet सर्वर के लिए यह संभव है। NuGet हटाने कमांड का प्रयोग करें।

nuget delete MyPackage 1.0