您好,我一直在寻找一段时间,但我得到的结果就是月球旅行和e = mc2。
因此,为了尽可能具体,我将包括截图:)
故事:
我在我的项目中添加了一个.exe文件,就像这样; Screenshot of Solution Explorer 我想要做的是按一个按钮,它将启动应用程序:
Private Sub RunVersion11ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RunVersion11ToolStripMenuItem.Click
Dim TeamViewer11Path As String = ("C:\Program Files (x86)\TeamViewer\TeamViewer.exe")
Process.Start(TeamViewer11Path)
End Sub
Private Sub RunVersion12packedToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles RunVersion12packedToolStripMenuItem.Click
Dim TeamViewer12Path As String = ("?!?!?!?! this file is included in the proj as seen in picture 1, the Private Sub above this is a locally installed one.")
Process.Start(TeamViewer12Path)
End Sub
如上所示,第一个sub执行已安装在计算机上的应用程序。我想运行.exe,如上图所示。
然而在google搜索等之后,一切都是指文件的完整路径,如:C:\ Users \ XXXX \ documents \ visual studio 2017 \ Projects \ WindowsApp6 \ WindowsApp6 \ ts12.exe
但显然,如果我在另一台计算机上运行该应用程序,这将不起作用。
我想要的帮助:
我应该在Process.Start中添加什么来指向解决方案资源管理器中包含的文件?像Process.Start(“\ root \ app \ ts3.exe”)或类似的,它在调试和发布中都有效。
请注意我是新手,所以请提供适合某人低于您自己的专业水平的示例。谢谢! :)
答案 0 :(得分:1)
您需要确保解决方案资源管理器中.exe文件的“复制到输出目录”属性设置为“复制如果更新”或“复制”。
到达输出目录的代码:
Dim strOutputDirectory As String = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
Process.Start(System.IO.Path.Combine(strOutputDirectory, "ts12.exe"))