2012-03-07 21 views
43

के लिए उपयुक्त एक स्थिर 'मुख्य' विधि नहीं है, मैंने दिन में अपने कोड को पृथक .cs फ़ाइलों में व्यवस्थित करना शुरू किया, और ऐसा करने के लिए यूआई के साथ काम करने वाली विधियों को अनुमति देने के लिए मैं ऐसा करूँगा एक ही नामस्थान और सार्वजनिक आंशिक वर्ग नाम के तहत .cs कोड ताकि विधियां इंटर-ऑपरेटिव हो सकें।में एक प्रविष्टि बिंदु

मेरे हैडर कि कॉल अपने मुख्य कोर फ़ाइल सहित चार फाइलें, में इस तरह दिखेगा: .cs फ़ाइलों को यूआई के साथ काम की

public shell() 
{ 
InitializeComponent(); 
} 

हैडर क्षेत्र (और इस नए संघर्ष के कारण हो रहे हैं):

Does not contain a static 'main' method suitable for an entry point

:

using System; 
using System.Windows.Forms; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Text.RegularExpressions; 
using System.IO; 
using System.Data.SqlServerCe; 
using System.Diagnostics; 
using System.Threading; 
using System.Collections.Specialized; 
using System.Net; 
using System.Runtime.InteropServices; 
using watin = WatiN.Core; 
using WatiN.Core.Native.InternetExplorer; 
using System.Web; 


namespace WindowsFormsApplication1 
{ 

    public partial class shell : Form 
    { 

अब जब मैं डिबग/पूर्वावलोकन करने के लिए अपने आवेदन (BTW यह दृश्य स्टूडियो 2010 एक्सप्रेस के भीतर एक Windows अनुप्रयोग है) की कोशिश है कि मैं इस त्रुटि संदेश मिलता है

मैंने एप्लिकेशन-> स्टार्टअप ऑब्जेक्ट में एप्लिकेशन गुणों में देखा, लेकिन यह मुझे कोई विकल्प नहीं देता है। मैं एप्लिकेशन को .cs फ़ाइल पर शुरू करने के लिए कैसे सूचित कर सकता हूं जिसमें मेरा InitializeComponent() है; आदेश?

  • मैंने समाधान के बिना अब तक देखा है।
  • प्रत्येक .cs फ़ाइल पर गुण 'संकलन' पर सेट हैं।
  • मुझे अपने समाधान एक्सप्लोरर में कोई App.xaml फ़ाइल नहीं दिखाई दे रही है लेकिन मुझे एक app.config फ़ाइल दिखाई देती है।

मैं अभी भी बहुत नया हूं और यह सी # कोड के साथ एक आयोजन विधि में मेरा पहला प्रयास है।

+9

क्या आपके पास मुख्य विधि है ?? –

+0

ईमानदार होने के लिए मुझे अपने कोड में कहीं भी मुख्य नामक विधि दिखाई नहीं दे रही है। मैं इस परियोजना पर कुछ महीनों के लिए भी काम कर रहा हूं। – atwellpub

+1

आपको सही हस्ताक्षर के साथ 'मुख्य' नामक एक स्थिर विधि की आवश्यकता है। इस प्रकार संकलक जानता है कि अपना प्रोग्राम कैसे शुरू करें। –

उत्तर

2

एक Windows Forms परियोजना है कि एक स्टार्टअप फार्म का उपयोग करने के लिए कोशिश कर रहा है की तरह लग रहा है, लेकिन किसी कारण से प्रोजेक्ट गुण मुख्य होने के लिए स्टार्टअप पर सेट है।

यदि आपने एप्लिकेशन ढांचे को सक्षम किया है तो आप यह देखने में सक्षम नहीं होंगे कि मुख्य सक्रिय है (यह एक अवैध कॉन्फ़िगरेशन है)।

+0

मुझे एप्लिकेशन फ्रेमवर्क सेटिंग और कुछ भी जो सॉफ्टवेयर को मुख्य() देखने के लिए कह सकता है, के बारे में कुछ और सुनने में दिलचस्पी लेता है जब एक मुख्य विधि कहीं भी मौजूद नहीं लगती थी। – atwellpub

+0

मेरा मानना ​​है कि एप्लिकेशन फ्रेमवर्क सेटिंग केवल VB.NET पर लागू होती है। सी # फॉर्म अनुप्रयोगों में हमेशा "मुख्य" प्रविष्टि बिंदु के रूप में होता है। –

72

मैं इस मुद्दे को भी देख रहा था, और मेरे मामले में समाधान बहुत आसान था। मैंने समाधान के लिए एक नई खाली परियोजना जोड़ा। नई जोड़ी गई परियोजना स्वचालित रूप से कंसोल एप्लिकेशन के रूप में सेट की जाती है। लेकिन चूंकि प्रोजेक्ट जोड़ा गया था 'खाली' प्रोजेक्ट था, इसलिए उस नई परियोजना में कोई प्रोग्राम.c मौजूद नहीं था। (जैसी उम्मीद थी)

सभी मुझे क्या करना जरूरी था कक्षा पुस्तकालय के लिए परियोजना संपत्तियों के उत्पादन प्रकार बदलने के

+0

एक समाधान की थोड़ी अधिक मात्रा में, मुझे लगता है। @ Eyossi के समाधान का पालन करना बहुत आसान होगा। – TimWagaman

+0

शानदार, मुझे बहुत मदद की, धन्यवाद। – casaout

+0

लेकिन क्या आप एक कंसोल एप्लिकेशन या कक्षा पुस्तकालय चाहते थे? किसी त्रुटि को ठीक करने के लिए केवल एप्लिकेशन के प्रकार को न बदलें; पता है कि त्रुटि आपको क्या बता रही है। निष्पादन कोड कहां से शुरू करना है यह निर्धारित करने के लिए कंसोल अनुप्रयोगों को एक प्रविष्टि बिंदु ('स्थिर शून्य मुख्य()') की आवश्यकता होती है; कक्षा पुस्तकालयों को नहीं - वे अन्य पुस्तकालयों द्वारा बुलाए जाते हैं जो पहले ही निष्पादित कर रहे हैं। – KyleMit

13

एक वर्ग के लिए इस विधि को जोड़ने और अगर आप अभी भी त्रुटि मिल को देखने का प्रयास करें:

[STAThread] 
static void Main() 
{ 
} 
4

हे मैं वही त्रुटि और इस त्रुटि का हल मिल गया बस राजधानी एम लिखना है छोटा सा मीटर के बजाय .. जैसे: - स्थिर शून्य मुख्य() मुझे आशा है कि यह मदद करता है ..

10

एक आप नहीं है, तो फ़ाइल Program.cs नाम की गई है, बस एक नई कक्षा और नाम जोड़ें यह Program.cs है।

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace Sales { 
    static class Program { 

     /// <summary> 
     /// The main entry point for the application. 
     /// </summary> 
     [STAThread] 
     static void Main() { 
      Application.EnableVisualStyles(); 
      Application.SetCompatibleTextRenderingDefault(false); 
      Application.Run(new Form1()); 
     } 
    } 

} 
-2

सरल समाधान:

फिर इस कोड पेस्ट करें।

1.BUILD -> स्वच्छ परियोजना-नाम

2.BUILD (यह अपने पिछले नहीं पूरा बिल्ड "यह ताज़ा करने के लिए इसी तरह की है" साफ हो जाएगा) -> BUILD परियोजना-नाम।

तो आप बस अपनी स्क्रिप्ट शुरू कर सकते हैं यह काम करेगा। कृपया अनुलग्नक ढूंढें !!

42

प्रोजेक्ट> गुणों के तहत आउटपुट प्रकार को "क्लास लाइब्रेरी" में बदलें। डिफ़ॉल्ट रूप से, यह सेटिंग "कंसोल एप्लिकेशन" पर सेट हो सकती है।

+0

यह वही है जो मैंने किया, सही काम करता है। यदि आपने 'खाली' प्रोजेक्ट जोड़ा है, तो यह कंसोल पर डिफ़ॉल्ट है। – HowlinWulf

+0

मैंने यह सरल फिक्स भी किया और यह मेरे लिए काम किया। – jjones150

4

यदि आपके पास कोई मुख्य विधि है लेकिन अभी भी यह त्रुटि प्राप्त है, तो सुनिश्चित करें कि मुख्य विधि वाली फ़ाइल में "क्रियाएं बनाएं" और "आउटपुट निर्देशिका में कॉपी करें" पर सेट करें "कॉपी न करें" ।

+0

धन्यवाद! शायद कुछ घंटों में, मुझे एहसास होगा कि मैं एक वाक्यविन्यास त्रुटि उत्पन्न नहीं कर सका और इस प्रकार वहां देखा .. –

0

मुझे भी इस समस्या का सामना करना पड़ा है। तब मुझे एहसास हुआ कि मैं कंसोल एप्लिकेशन के बजाय कंसोल एप्लिकेशन (पैकेज) चुन रहा था।

1
  1. App.xaml का चयन करें और इसकी गुण प्रदर्शित करें। सेट करेंएप्लिकेशनडिफिनिशन बनाएं।
  2. App.xaml और इसकी संबंधित * .cs फ़ाइल * .csproj फ़ाइल की मूल निर्देशिका में रखी जानी चाहिए, i। ई। एक "स्रोत" फ़ोल्डर में नहीं।
0

मैं विजुअल स्टूडियो का उपयोग कर रहा हूं और यह समस्या भी थी। मुझे कुछ समय लगा, लेकिन मेरे कार्यक्रम में ऐसा इसलिए हुआ क्योंकि मैंने गलती से "प्रोग्राम" नामक कक्षा को हटा दिया जो स्वचालित रूप से उत्पन्न होता है।

0

भविष्य पाठकों को विंडोज के साथ एक ही मुद्दा का सामना करना पड़ा के लिए आवेदन पत्र, एक समाधान अपने मुख्य/शुरू प्रपत्र वर्ग के लिए इन पंक्तियों को जोड़ने के लिए है:

[STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new MyMainForm()); 
    } 

फिर गुण परियोजना के लिए जाना> अनुप्रयोग> स्टार्टअप वस्तु लटकती , नेमस्पेस देखना चाहिए। MyMainForm, इसे चुनें, समाधान साफ़ करें और समाधान बनाएं। और यह काम करना चाहिए।

0

चेक अधिकार परियोजना पर क्लिक करें और मेनू से "स्टार्टअप परियोजना के रूप में सेट" अगर परियोजना "स्टार्टअप परियोजना" के रूप में

सेट किया गया है देखने के लिए।

0

आप paramaters आदेश से निर्दिष्ट करने की अनुमति देना चाहते हैं, वे इस तरह दिखना चाहिए:

[STAThread] 
static void Main(params string[] paramaters) 
{ 

आप एक से अधिक परमाटर निर्दिष्ट नहीं कर सकते अन्यथा यह भी कारण होगा त्रुटि ऊपर की सूचना दी।

0

कुछ अन्य लोगों के यहाँ आने के लिए:

मेरे मामले में मैं एक नमूना परियोजना जो Program.cs फ़ाइल को शामिल किए बिना झूठी शामिल से एक .csproj नकल की थी। जिसे या तो EnableDefaultCompileItems को हटाया गया था, इसमें संकलित में प्रोग्राम.cs शामिल हैं स्पष्ट रूप से

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