2009-02-04 12 views
9

Wenn Sie eine ClickOnce-Anwendung installieren, wird das Programm nach der Installation ausgeführt. Ist es möglich, ohne zu installieren?Installieren Sie ClickOnce ohne Ausführung von

Ich weiß, dass ich ein Setup- und Bereitstellungsprojekt verwenden und ein Installationsprogramm erstellen kann, aber ich würde ClickOnce bevorzugen.

+0

Ich möchte auch verstehen, warum es die Anwendung während der Installation ausführt. Ich habe hier gefragt: http://stackoverflow.com/questions/19735193/why-does-the-clickonce-deployment-installer-run-the-application-with-installat – Xonatron

Antwort

4

Ich denke, Sie könnten es vortäuschen. Führen Sie eine boolesche Eigenschaft "IsInstalled" ein, die standardmäßig auf false festgelegt ist. Dann in Program.cs, ändern Sie Ihre Main() -Methode wie folgt aussehen:

[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, jetzt, wenn die App zum ersten Mal installiert wird, ist es, dass das Eigentum überprüft und zeigt einfach eine Nachricht an den Benutzer und dann beendet.

Wenn Sie knifflig werden wollten, dann könnten Sie den Aktivierungs-URI für die Bereitstellung analysieren und einen URI-Parameter angeben, der angibt, ob das Programm bei der Erstinstallation ausgeführt werden soll oder einfach stillgelegt werden soll.

+1

Warum führt es die Anwendung an erster Stelle? – Xonatron

+0

Auch diese Lösung wurde nur im Lichte der offiziellen Lösung von Magnus (mit MageUI.exe) abgestimmt. – Xonatron

8

der automatische Start nach der Installation zu deaktivieren, geben Sie einfach die URL Aktivierung deaktivieren als How to: Disable URL Activation of ClickOnce Applications in dem MSDN-Artikel beschrieben (unter Verwendung des Werkzeugs MageUI.exe).

Um URL-Aktivierung für Ihre Anwendung

  • Wählen Sie die Bereitstellungsoptionen Registerkarte zu deaktivieren.

  • Deaktivieren Sie das Kontrollkästchen Anwendung nach der Installation automatisch ausführen.

  • Speichern und unterschreiben Sie das Manifest.

+0

Ich habe das versucht, und sehe, dass es eine offizielle Lösung ist, aber es läuft immer noch meine Anwendung. Noch jemand mit diesem Problem? – Xonatron

+0

Ich kann nicht finden "Automatisch Anwendung ausführen" ... wo ist es ?? –

0

Sie können manifestieren durch Bearbeiten der Anwendung dies in Mage. Es gibt ein Kontrollkästchen, um die Anwendung nach der Installation zu stoppen.

Wenn Sie nicht in der Lage sind, ein Manifest manuell oder mit Mage zu bearbeiten, können Sie mithilfe der integrierten Implementierungsklasse überprüfen, ob die Anwendung das erste Mal ausgeführt wird.

using System.Deployment.Application 

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 

    if (ApplicationDeployment.CurrentDeployment.IsFirstRun) 
    { 
     MessageBox.Show("Install Complete"); 
     return; 
    } 

    Application.Run(new Form1()); 
} 
+2

'IsFirstRun' ist wahr, wenn Sie Ihre Anwendung aktualisieren – prostynick

Verwandte Themen