以编程方式启动Silverlight Out of Browser App

时间:2011-08-23 02:53:55

标签: silverlight

我正在尝试使用SLLAUNCHER.EXE来启动已安装的SL Out-of-Browser应用程序。运行以下内容后,桌面上的MyApp启动图标就会消失。如果我尝试没有覆盖开关没有任何反应。

我正在使用这篇文章作为指南:

http://timheuer.com/blog/archive/2010/03/25/using-sllauncher-for-silent-install-silverlight-application.aspx

任何建议都将不胜感激。

    static void Main(string[] args)
    {
        string sllauncherPath = string.Format("{0}\\Microsoft Silverlight\\sllauncher.exe",
       Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));

        string originUri = @"http://localhost:52878/ClientBin/MyApp.xap";
        string xap = "MyApp.xap";
        string arg = string.Format(@"/emulate:""{0}"" /origin:""{1}""  /overwrite", xap, originUri);

        var startInfo = new ProcessStartInfo
        {
            CreateNoWindow = false,
            UseShellExecute = false,
            RedirectStandardOutput = false,
            FileName = sllauncherPath,
            Arguments = arg
        };

       var process = Process.Start(startInfo))

    }

1 个答案:

答案 0 :(得分:0)

您使用的是64位机器吗? http://social.msdn.microsoft.com/Forums/en-US/silverlightcontrols/thread/abedb9dc-d471-4d82-8a20-45f98671cac9

也可以提供帮助: 这是我在检测到更新完成后从我的SL OOB应用程序中重新启动的方式:

''put this in your App.xaml.vb[.cs] and call DoRestart
Public Shared Sub DoRestart()
    StartAgain()
    Application.Current.MainWindow.Close()
End Sub
Public Shared Sub StartAgain()
    If Not [String].IsNullOrEmpty(GetSLLauncherCommand) Then
        Using shell = AutomationFactory.CreateObject("WScript.Shell")
            shell.Run(GetSLLauncherCommand)
        End Using
    End If
End Sub
Public Shared Function GetSLLauncherCommand() As String
    Dim desktopPath As String
    Dim SLLauncherCommand As String = ""
    Using wShell As Object = AutomationFactory.CreateObject("WScript.Shell")
        desktopPath = wShell.SpecialFolders("Desktop")
    End Using
    Using shell As Object = AutomationFactory.CreateObject("Shell.Application")
        Dim DesktopFolder As Object = shell.[NameSpace](desktopPath)
        Dim DesktopItems As Object = DesktopFolder.Items()
        For Each item In DesktopItems
            If item.IsLink Then 'this is a shurtcut
                Dim fileName As String = item.Name.ToLower()

                If fileName.Contains("!!!<PART OF YOUR SL APPS SHORCUT NAME>!!!!") Then
                    Dim link = item.GetLink()
                    SLLauncherCommand = """" & Convert.ToString(link.Path) & """ " & Convert.ToString(link.Arguments)
                End If
            End If
        Next
    End Using
    Return SLLauncherCommand
End Function

您可以尝试调整非SL应用的代码!

THT