系统由一个Outlook功能区加载项和一个用VB.NET编写的Windows窗体应用程序组成。两者均使用ClickOnce部署进行部署。我需要的是能够从Outlook功能区调用Windows窗体应用程序。如何在用户计算机上找到Windows窗体应用程序? Windows是否存储一些可以由应用程序名称引用的有关其位置的信息?
[您可以,如果您从URL部署Windows窗体应用程序,只需在功能区加载项中调用从其部署的URL,无论它实际安装在HDD上的什么位置,它都将启动它。
喜欢这个:
System.Diagnostics.Process.Start("http://mydomain.com/myapp.application")
这里是设置Click-Once部署应用程序的快捷方式的更详细说明:http://keithelder.net/2009/04/18/how-to-run-a-clickonce-application-on-startup/
嗯,如果您打电话:
System.Diagnostics.Process.Start("http://example.com/myapp.application")
将打开浏览器以下载myapp.application。
最好将文件下载到本地文件夹,然后再运行/执行文件。
Public Sub ApplicationUpgrade()
Dim docFolder As String = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Dim destFile As String = docFolder & "\myapp.application"
If System.IO.File.Exists(destFile) Then
System.IO.File.Delete(destFile)
End If
My.Computer.Network.DownloadFile("http://example.com/myapp.application", destFile)
If System.IO.File.Exists(destFile) Then
System.Diagnostics.Process.Start(destFile)
Application.Exit()
End If
End Sub
该代码会将.application文件下载到documents文件夹并自动启动文件。这将导致自动安装升级。