@ BrunoKlein के जवाब में काम करेंगे, और मैं उसके समाधान पर मेरा उत्तर आधारित। उद्धरण @ ब्रूनोक्लेन,
सबसे पहले आपको एक WPF अनुप्रयोग प्रोजेक्ट का उपयोग करना होगा और app.xaml को बदलना होगा ताकि आप विंडो निर्माण को ओवरराइड कर सकें।
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WpfApplication1">
<Application.Resources>
</Application.Resources>
</Application>
नोट इस StartupUri संपत्ति याद आ रही है।
अब, यहां तक कि सरल (यह कम से कम विजुअल स्टूडियो 2015 में काम करता है), प्रोजेक्ट गुणों पर जाएं, और आउटपुट प्रकार को विंडोज एप्लिकेशन से कंसोल एप्लिकेशन में बदलें। यह प्रोजेक्ट को कंसोल ऐप के रूप में बनाता है, लेकिन अभी भी विंडोज़ एप्लीकेशन की क्षमता है।
(कक्षा लाइब्रेरी इस फोटो में प्रकाश डाला है, कंसोल अनुप्रयोग का चयन बजाय)
तुमने किया! किया हुआ।
अब, बजाय एक void Main(string[] args)
होने के लिए, अपने "मुख्य" विधि अपने स्वत: जनरेट की App
वर्ग के OnStautup
विधि है:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
string[] args = e.Args;
if (SomeConditionBasedOnTheArgs(args))
{
// Instantiate view, call View.Show()
}
else
{
// Process the args
}
}
}
नोट इस उत्तर के बीच और @ BrunoKlein का जवाब एक अंतर यह है कि यह एक होगा है हमेशा एक कंसोल "शो" करें यदि यह एक्सप्लोरर/स्टार्ट मेनू/डेस्कटॉप से चलाया जाता है, लेकिन यदि कमांड लाइन से चलाया जाता है, तो यह किसी भी सामान्य कंसोल एप्लिकेशन की तरह, उस कंसोल पर अपने सभी मानक आउटपुट को चलाएगा और निर्देशित करेगा।
स्रोत
2017-12-15 22:01:24
आप कमांड लाइन मोड इंगित करने के लिए ध्वज पास कर सकते हैं और जब मौजूद हो, तो अपने ऐप को कंसोल पर अटैच करने के लिए अटैचकंसोल का उपयोग करें। Http: //www.codeproject देखें।कॉम/टिप्स/68 9 7 9/अटैचिंग-ए-कंसोल-टू-ए-विनफॉर्म-एप्लिकेशन और उदाहरण – user469104