我的目标是实现一键式(或者两次点击)启动ClickOnce应用程序。该应用程序有一些必备的先决条件需要安装。微软提供的确保这些先决条件已经安装的正常方法是让用户决定他是否拥有这些先决条件,并下载和安装一个名为“setup.exe”的文件,该文件将它们安装并运行ClickOnce应用程序。这个过程需要下载EXE文件(一次点击),运行它(两次点击),然后在安装先决条件之后再点击一次才能运行ClickOnce应用程序。
我试图把这个过程减少到一次或两次点击: - 在我的网站上单击链接以获取ClickOnce的
我又做了另一个ClickOnce应用程序,其中包含一个setup.exe 。它会检查是否安装了必备的先决条件,如果已安装,则自动运行其他ClickOnce应用程序。如果没有安装,则运行包含的setup.exe,然后运行其他ClickOnce应用程序。
我的问题是当我尝试从其中一个应用程序运行其他ClickOnce应用程序时,它只是打开我的Web浏览器并下载.application文件而不运行它。
我正在尝试使用以下代码在我的C#代码中启动ClickOnce应用程序:
我试图把这个过程减少到一次或两次点击: - 在我的网站上单击链接以获取ClickOnce的
.application
文件。
- 再次单击以运行它。我又做了另一个ClickOnce应用程序,其中包含一个setup.exe 。它会检查是否安装了必备的先决条件,如果已安装,则自动运行其他ClickOnce应用程序。如果没有安装,则运行包含的setup.exe,然后运行其他ClickOnce应用程序。
我的问题是当我尝试从其中一个应用程序运行其他ClickOnce应用程序时,它只是打开我的Web浏览器并下载.application文件而不运行它。
我正在尝试使用以下代码在我的C#代码中启动ClickOnce应用程序:
Process.Start(ApplicationURL);
我只想让它自动启动 ApplicationURL 上的应用程序。有没有方法可以跳过我看到的浏览器参与?
(我的问题与 Stack Overflow 的问题非常相似:在没有用户操作的情况下从网页运行 ClickOnce 应用程序。)
Process.Start("iexplore.exe", ApplicationURL)
吗? - M.BabcockProcessStartInfo startInfo = new ProcessStartInfo("Iexplore"); startInfo.Arguments = ApplicationURL; Process agentStudio = Process.Start(startInfo);
现在它使用Internet Explorer启动应用程序,并且应用程序现在确实作为“一键”应用程序工作。 - JschiffProcessStartInfo
对象。这就是 Process.Start(string, string) 重载的作用。 - M.BabcockProcess.Start(<.application 文件的路径>)
来从另一个 ClickOnce 应用程序中启动一个应用程序,并且这可以使用 UNC 路径(\\server\share\folder\program.application
)实现。 - Dave Cousineau