VB.NET 2017引用我项目中的.exe文件

时间:2017-03-23 12:37:56

标签: vb.net visual-studio-2017 process.start

您好,我一直在寻找一段时间,但我得到的结果就是月球旅行和e = mc2。

因此,为了尽可能具体,我将包括截图:)

  1. 我运行Microsoft Visual Studio 2017
  2. 基于表格的申请
  3. 我的知识基本上是零,我学习代码测试并最终得到结果。
  4. 故事:

    我在我的项目中添加了一个.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”)或类似的,它在调试和发布中都有效。

    请注意我是新手,所以请提供适合某人低于您自己的专业水平的示例。谢谢! :)

1 个答案:

答案 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"))