के रूप में चल रहा है, मुझे लगता है कि मेरे विंडोज़ फॉर्म में से एक प्रोग्राम कमांड लाइन से प्रोग्रामेटिक रूप से चलाया जा रहा है। तैयारी में, मैंने तर्क से अपनी कक्षा में तर्क को अलग कर दिया है। अब मैं कमांड लाइन तर्कों की उपस्थिति के आधार पर आवेदन को आगे और पीछे स्विच करने की कोशिश कर रहा हूं।.NET ऐप या तो विंडोज फॉर्म या कंसोल एप्लिकेशन
यहां मुख्य वर्ग के लिए कोड है:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1) // gets passed its path, by default
{
CommandLineWork(args);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static void CommandLineWork(string[] args)
{
Console.WriteLine("It works!");
Console.ReadLine();
}
जहां Form1
मेरी रूप है और It works!
स्ट्रिंग सिर्फ वास्तविक तर्क के लिए एक प्लेसहोल्डर है।
अभी विज़ुअल स्टूडियो (कमांड लाइन तर्क के साथ) से इसे चलाने पर, It works!
वाक्यांश को आउटपुट पर मुद्रित किया गया है। हालांकि, /bin/Debug/Program.exe फ़ाइल (या उस मामले के लिए रिलीज़) चलाते समय एप्लिकेशन क्रैश हो जाता है।
क्या मैं इस बारे में सही तरीके से जा रहा हूं? क्या यह अधिक तर्कसंगत होगा (यानी कम डेवलपर का समय लें) मेरी लॉजिक क्लास एक डीएलएल हो जो दो अलग-अलग अनुप्रयोगों से लोड हो जाए? या क्या ऐसा कुछ अलग है जो मुझे पता नहीं है?
अग्रिम धन्यवाद!
ऐप क्रैश होने पर आपको क्या अपवाद मिल रहा है? साथ ही, मुझे लगता है कि यह तर्क होना चाहिए। लम्बाई> = 1 (या> 0)> 1 के बजाय? –