2016-01-05 5 views
5

के लिए कोई उपयुक्त 'प्रोग्राम' प्रकार ऐसा नहीं लगता है कि रात के आरसी 2 बिल्डों में हालिया अपडेट ने प्रोग्राम शुरू होने के तरीके को बदल दिया है। अद्यतन करने के बाद, अब निम्न आदेश चलाते समय मुझे एक त्रुटि प्रस्तुत की गई है।किसी प्रविष्टि बिंदु

// "commands": { 
//  "web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:1287" 
// } 

dnx --watch web 

'Microsoft.AspNet.Server.Kestrel' does not contain a 'Program' type suitable for an entry point Stopped listening. 

Startup.cs संकलित करता है और अनुवर्ती विधियों का पालन करता है।

public class Startup 
{ 
    public void ConfigureServices(IServiceCollection services, IHostingEnvironment env) 
    { ... } 

    public void Configure(IApplicationBuilder app, IApplicationLifetime lifetime) 
    { ... } 
} 

क्या कार्यक्रम प्राप्त करने के लिए नवीनतम nightly बनाता है के साथ शुरू करने के लिए किया जाना चाहिए?

यहां एक उदाहरण है जो इस मुद्दे को पुन: उत्पन्न करता है। https://github.com/roydukkey/moist/tree/stackoverflow-34615917

एसडीके: v1.0.0-rc2-16357

उत्तर

2

aspnet/Hosting#521 में, एकाधिक:

"compilationOptions": { 
    "emitEntryPoint": true 
} 

पूर्ण संस्करण में प्रवेश बिंदु हटा दिए गए हैं।

पहले हम होस्टिंग में (Microsoft.AspNet.Hosting) सहित वेब अनुप्रयोगों, सर्वर (जैसे Microsoft.AspNet.Server.Kestrel) और आवेदन ही (जैसे Startup.cs) के लिए एकाधिक प्रवेश बिंदुओं था। हमने होस्टिंग और सर्वर में प्रवेश बिंदु हटा दिए हैं, इसलिए आगे बढ़ने वाला एकमात्र प्रवेश बिंदु एप्लिकेशन से है। इसके लिए project.json पर emitEntryPoint को compilationOptions के तहत सत्य में स्टार्टअप असेंबली को इंगित करने के लिए commands सेट करने की आवश्यकता होगी। aspnet/Announcements#131

मुद्दा commands सेटिंग्स, पहले से वैध, सर्वर विन्यास लिस्टिंग के बजाय एक विधानसभा को इंगित करने की जरूरत है हल करने के लिए। इसके अतिरिक्त, emitEntryPoint सेटिंग सक्षम करने की आवश्यकता है। इन दोनों सेटिंग्स को project.json से सेट किया गया है।

"compilationOptions": { 
     "emitEntryPoint": true 
    }, 

    "commands": { 
-  "web": "Microsoft.AspNet.Server.Kestrel" 
+  "web": "Web" 
    } 

विशिष्ट सर्वर कॉन्फ़िगरेशन अब hosting.json में स्थित हैं। निम्नलिखित सिर्फ एक उदाहरण विन्यास है।

{ 
    "server": "Microsoft.AspNet.Server.Kestrel", 
    "server.urls": "http://localhost:1234" 
} 

इस सवाल भर कार्यप्रवाह देखने के लिए आपको roydukkey/moist/tree/stackoverflow-34615917 को देखें।

0

आप एक static वर्ग है जो इसे में एक स्थिर Main विधि है जोड़ने की जरूरत है। वहां से, आपको इसे होस्ट करने की आवश्यकता है। नीचे की तरह:

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var configuration = WebApplicationConfiguration.GetDefault(args); 

     var application = new WebApplicationBuilder() 
        .UseApplicationBasePath(Directory.GetCurrentDirectory()) 
        .UseConfiguration(configuration) 
        .UseStartup<Startup>() 
        .Build(); 

     application.Run(); 
    } 
} 

सुनिश्चित नहीं हैं कि अगर अनिवार्य लेकिन आप अपने project.json में नीचे की आवश्यकता हो सकता है:

{ 
    "version": "1.0.0", 
    "compilationOptions": { 
     "emitEntryPoint": true 
    }, 
    "dependencies": { 
     "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc2-*", 
     "Microsoft.AspNet.Hosting": "1.0.0-rc2-*" 
    }, 
    "frameworks": { 
     "dnx451": {}, 
     "dnxcore50": {} 
    } 
} 
+0

मैं "माइक्रोसॉफ्ट.एस्पनेट.सेवर.केस्ट्रेल" का उपयोग कर रहा हूं: "1.0.0-आरसी 2- *", आदि – roydukkey

+0

समाधान एक जैसा होना चाहिए (जब तक कि कोई कठोर नया परिवर्तन न हो जो मुझे आश्चर्यचकित न करे: डी), इसे जाने दें और अपने संस्करणों को लागू करें। – tugberk

+0

'वेब अनुप्रयोग' में 'रन' वेब के लिए परिभाषा नहीं है। डीएनएक्स 4.5.1 – roydukkey

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