2017-05-22 28 views
5

के बीच बड़ा अंतर क्या है मैं बहुत dotnet CLI हूं और मैं विभिन्न आदेशों के माध्यम से जा रहा हूं। कमांड जो मुझे थोड़ा उलझन में डालता है वह डॉटनेट pack और publish के बीच बड़ा अंतर जानने की कोशिश कर रहा है। मैं इस पेज पर उनके विवरण को देख मतलब:डॉटनेट प्रकाशन और डॉटनेट पैक

https://docs.microsoft.com/en-us/dotnet/articles/core/tools/dotnet

क्या मेरी समझ Publish पैकेज + DLL बनाता है, जबकि कि pack एक पैकेज बनाता है।

क्या यह सही है? यदि ऐसा है, तो क्यों न केवल publish का उपयोग न करें और यदि हम नहीं चाहते हैं तो DLL फ़ाइल का उपयोग न करें। क्या यह सच है?

उत्तर

5

dotnet pack - आपके कोड का एक NuGet पैकेज बनाता है।

यह महत्वपूर्ण अंतर है - यह http://nuget.org, या एक न्यूजेट सर्वर पर प्रकाशित करने में सक्षम होगा जिसे अन्य डेवलपर्स द्वारा खींचा जा सकता है, या यहां तक ​​कि ऑक्टोपस परिनियोजन के उपयोग के लिए भी।

dotnet publish - एक .NET ढांचे-निर्भर या स्वयं निहित अनुप्रयोग प्रकाशित करता है।

कीवर्ड "स्वयं निहित", एक इंस्टॉलर शायद, या एक फ़ोल्डर जिसे मेजबानों के बीच प्रतिलिपि/चिपकाने के द्वारा तैनात किया जा सकता है।

+0

"स्वयं निहित" को स्पष्ट करने के लिए jsut यहां निष्पादन योग्य शामिल करने का तात्पर्य है। यही वह हिस्सा है जो वास्तव में इसे 'कॉपी-पेस्टेबल' बनाता है और केवल 'कॉपी-पेस्ट' द्वारा निष्पादन योग्य बनाता है। क्या यह सही है? – TeaLeave

+1

सही, * एप्लिकेशन को संकलित करता है, प्रोजेक्ट फ़ाइल में निर्दिष्ट इसकी निर्भरताओं के माध्यम से पढ़ता है, और फ़ाइलों के परिणामी सेट को निर्देशिका में प्रकाशित करता है * – t0mm13b

0

@ t0mm13b का जवाब देने के लिए जोड़ा जा रहा है:

dotnet pack: उत्पादन एक पैकेज है कि है मतलब अन्य परियोजनाओं द्वारा पुन: उपयोग किया जा रहा है।

dotnet publish: आउटपुट का मतलब तैनात/"शिप किया गया" है - यह एक "पैकेज फ़ाइल" नहीं है बल्कि सभी प्रोजेक्ट के आउटपुट के साथ एक निर्देशिका है।

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