Install ClickOnce without running

前端 未结 4 465
小蘑菇
小蘑菇 2020-12-06 17:52

When you install a ClickOnce application, the program runs after the install. Is it possible to install without running?

I know I can use a setup and deploy

4条回答
  •  清歌不尽
    2020-12-06 18:24

    I guess you could fake it. Introduce an "IsInstalled" boolean property, defaulted to false. Then in Program.cs, change your Main() method to look like this:

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
    
        if (!Properties.Settings.Default.IsInstalled)
        {
            Properties.Settings.Default.IsInstalled = true;
            Properties.Settings.Default.Save();
    
            MessageBox.Show("Install Complete");
            return;
        }
    
        Application.Run(new Form1());
    }
    

    So now when the app is first installed, it checks that property and simply displays a message to the user and then quits.

    If you wanted to get tricky then you could look at parsing the Activation URI for the deployment and have a URI parameter which specifies whether the program should run when it's first installed or just close silently.

提交回复
热议问题