Почему он говорит, что программа имеет более одной точки входа, определенной, следовательно, компилируется с помощью /main, чтобы разнести тип, содержащий точку входа?
Как мы знаем, VS автоматически создает основную функцию в классе app.g.cs для оконного приложения wpf. У меня так. Теперь я собираюсь определить свою собственную основную функцию в другом классе и удалить точку входа по умолчанию из файла класса app.g.cs. У меня есть сборка и все еще ошибка, показывающая, что у вас есть две точки входа. Когда я собираюсь перестроить решение, основная функция (точка входа по умолчанию) автоматически создается в классе app.g.cs. Что мне нужно сделать, чтобы остановить автоматическое воссоздание основной функции (точки входа по умолчанию) в файле app.g.cs?
Что я уже пробовал:
Я пытаюсь решить эту проблему.
----------------------------------------------
Основная функция, которая определена в другом классе
SingleInstanceManager.cs as class SingleInstanceManager : WindowsFormsApplicationBase { public SingleInstanceManager() { this.IsSingleInstance = true; //System.Windows.Forms.NotifyIcon ni = new System.Windows.Forms.NotifyIcon(); //System.Windows.Forms.NotifyIcon ni1 = new System.Windows.Forms.NotifyIcon(); //ni1.Icon = Properties.Resources.favicon; ////Taskba.OverlayIcon = new Icon(SystemIcons.Error, 16, 16); //ni1.Text = "IP Messenger"; //ni1.Visible = true; // ni.DoubleClick += //delegate(object sender, EventArgs args) //{ // MainWindow m = new MainWindow(); // this.Show(); // this.WindowState = WindowState.Normal; //}; } protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs) { base.OnStartup(eventArgs); App app = new App(); app.Run(new Selectlanguage("0")); return false; } protected override void OnStartupNextInstance( StartupNextInstanceEventArgs eventArgs) { base.OnStartupNextInstance(eventArgs); Window mainWindow = System.Windows.Application.Current.MainWindow; if (mainWindow.WindowState != WindowState.Normal) { mainWindow.WindowState = WindowState.Normal; } System.Windows.Application.Current.MainWindow.Activate(); } [STAThread] public static void Main(string[] args) { SingleInstanceManager manager = new SingleInstanceManager(); manager.Run(args); } } ------------------------------------ I have removed default entry point from app.g.cs class file and put following code: /// <summary> /// App /// public partial class App : System.Windows.Application, System.Windows.Markup.IComponentConnector { private bool _contentLoaded; /// <summary> /// InitializeComponent /// [System.Diagnostics.DebuggerNonUserCodeAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] public void InitializeComponent() { if (_contentLoaded) { return; } _contentLoaded = true; #line 4 "..\..\App.xaml" this.StartupUri = new System.Uri("Selectlanguage.xaml", System.UriKind.Relative); #line default #line hidden // System.Uri resourceLocater = new System.Uri("/IDSCANNER;component/app.xaml", System.UriKind.Relative); #line 1 "..\..\App.xaml" //System.Windows.Application.LoadComponent(this, resourceLocater); #line default #line hidden } [System.Diagnostics.DebuggerNonUserCodeAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")] [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Design", "CA1033:InterfaceMethodsShouldBeCallableByChildTypes")] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) { this._contentLoaded = true; } }
Jochen Arndt
Просто Google для "основной точки входа wpf":
- Измените "Startup object" на класс, содержащий ваш метод Main()
- Отключить автоматическое создание приложения.г. CS в методе Main()
[no name]
Это говорит о том, что вы просто слепо копируете/вставляете код, который вы не понимаете, в свое приложение, надеясь, что оно будет работать.
Ajit Kumar Pandit
Спасибо за ваше величие. Да, твой ответ помогает мне больше. Спасибо.