Starten einer clickonce -bereitgestellten Windows -Anwendung mit VBScript
Frage
Ich habe eine ClickOnce -Bereitstellung, die ich von VBScript aus starten möchte, ähnlich wie das Start von Microsoft Word im folgenden Beispiel:
Dim word
Set word = CreateObject("Word.Application")
word.Visible = True
Das Problem ist, dass ich nicht weiß, welchen Parameter ich in die übergeben soll CreateObject
Funktion zum Starten meiner Anwendung. Wo würde ich die Masterliste der Anwendungen finden, die auf meinem PC/der Verknüpfung installiert sind, um sie zu starten?
Lösung
ClickOnce wird einfach nicht so installiert. Sie haben normalerweise keine COM -Hooks (für createObject) und sind in einem isolierten Teil des Benutzerprofils (nicht in dem Profil dieses Geräts) installiert. Und vergessen Sie nicht, dass Sie auch mehrere Kopien/Versionen derselben App gleichzeitig über ClickOnce (an verschiedenen Orten) erhalten.
Eine Option (in 3.5/VS2008) könnte darin bestehen, die neuen Datei -Assoziations -Sachen zu verwenden ... Ihre App mit ".foo" -Dateien zu verknüpfen, eine leere ".foo" -Datei zu erstellen und zu starten. Das könnte funktionieren. Sehen Sie sich das Dialog mit Publish => Optionen in VS2008 an.
Andernfalls - wenn Sie diese Art von Nutzung wünschen, müssen Sie MSI (dh ein reguläres Installateur; nicht ClickOnce) verwenden, um Ihre App als COM -Bibliothek (DLL) zu registrieren. Beachten Sie, dass .NET keinen guten COM -Server (EXE) macht - daher nicht direkt mit Word verglichen. Wenn Sie einen .NET -COM -Server möchten, sind "Serviced Components" die beste Wahl - aber diese sind in der UI nicht groß.
Für Informationen befindet sich der isolierte Bereich irgendwo in der Nähe "%userProfile% Lokale Einstellungen Apps 2.0", aber dies ist nur für Interesse, damit Sie ihn sehen können. Versuchen Sie nicht, ihn von dort aus auszuführen.
Andere Tipps
Danke für die Information. Das hat mir klar gemacht, dass ich eine .NET -ausführbare Datei anstelle eines VBSCripts verwenden konnte, um meine Anwendung zu starten.
Dim program As New Process
'Try to run a .Net click-once application
Try
Dim shortcut As String = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)
shortcut = shortcut + "specific\shorctut\path\shortcut.appref-ms"
program .StartInfo.FileName = lpsShortcut
program .Start()
Catch
'If not go to the web site for a fresh install
Try
.Diagnostics.Process.Start("IExplore.exe", "http://url/program.application")
Catch ex As Exception
'Log or Email alert here...
End Try
End Try