के साथ क्लास लाइब्रेरी पिछले कुछ दिनों में मैं नई .NET CLI को आजमा रहा हूं और हालांकि यह कंसोल और वेब अनुप्रयोगों को बनाने के लिए काफी सरल है, यह बिल्कुल स्पष्ट नहीं है कि कक्षा पुस्तकालय कैसे बनाया जाए।.NET CLI
मैंने निम्न कार्य किया: सामान्य रूप से, कमांड लाइन पर मैंने का उपयोग project.json
फ़ाइल बनाने के लिए किया है। मैंने इस परियोजना में एक साधारण वर्ग को कोड किया है और कुछ भी नहीं।
फिर मैंने .NET CLI के साथ एक कंसोल ऐप बनाया जिसमें पहली बार project.json
पर निर्भरता के रूप में शामिल किया गया था और स्क्रीन पर एक संदेश दिखाने के लिए मैंने कक्षा पुस्तकालय में बनाई गई कक्षा का उपयोग किया था।
जब मैंने कंसोल ऐप चलाने की कोशिश की, तो दूसरी परियोजना स्थित थी और .NET CLI ने इसे बनाने का प्रयास किया था। कक्षा पुस्तकालय का निर्माण संदेश के साथ विफल रहा:
प्रोग्राम में एक प्रविष्टि बिंदु के लिए उपयुक्त स्थिर 'मुख्य' विधि नहीं है।
उस स्थिति में यह प्रोजेक्ट को कंसोल ऐप के रूप में पेश कर रहा था और मुख्य प्रविष्टि बिंदु खोजने का प्रयास कर रहा था।
मेरा मानना है कि इस वजह से जब मैं dotnet new
कमांड के साथ वर्ग पुस्तकालय बनाया यह project.json
उत्पन्न इस प्रकार हुआ:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-*"
}
},
"frameworks": {
"netcoreapp1.0": {}
}
}
वहाँ की तलाश में मेरा मानना है कि वहाँ इस के दो कारण हो सकते हैं: उनमें से एक तथ्य कि रनटाइम Microsoft.NETCore.App
और दूसरा टीएफएम है।
मैंने टीएफएम को netstandard1.5
में बदलने की कोशिश की लेकिन यह एक ही त्रुटि देकर काम नहीं किया। उस मामले में मेरा मानना है कि यह मुद्दा रनटाइम के साथ है। किसी भी तरह से मेरा मानना है कि Microsoft.NETCore.App
पर निर्भर करता है कि हम एक कंसोल ऐप बना रहे हैं, न कि लाइब्रेरी और फिर एक एंट्री पॉइंट आवश्यक है।
तब .NET कोर सीएलआई के साथ कक्षा पुस्तकालय बनाने का सही तरीका कैसा है? वास्तव में रनटाइम मुद्दा है? यदि हां, तो हम इससे कैसे निपट सकते हैं?
क्या आपने 'emitEntryPoint' को गलत पर सेट करने का प्रयास किया है? –
वैकल्पिक रूप से आपने 'dotnet new -t lib' के साथ लाइब्रेरी बनाने का प्रयास किया है। चूंकि [कंसोल प्रकार डिफ़ॉल्ट है।] (Https://github.com/dotnet/cli/tree/rel/1.0।0/src/dotnet/command/dotnet-new) –
सुझाव @ माइकज़ के लिए धन्यवाद, यह वास्तव में काम करता है। इसे 'झूठी' पर सेट करना एक प्रविष्टि बिंदु की आवश्यकता के साथ समस्या हल करता है। मैंने इस 'डॉटनेट न्यू-लिब' की कोशिश की है लेकिन यह काम नहीं करता है। यह बताता है कि सी # के लिए उपलब्ध प्रकार सिर्फ कंसोल हैं। – user1620696