vb.net-如何嵌入要在执行期间运行的文件?

vb.net-如何嵌入要在执行期间运行的文件?,vb.net,resources,publish,Vb.net,Resources,Publish,在winforms项目中使用VS2010 Professional和vb.net 我正在尝试在我的项目中包含一个.bat文件,以便应用程序可以访问它并 在用户安装我的构建后运行它 我已将该文件放入我的资源中。 我已将其属性设置为 "Build Action: Embedded Resource" and "Copy to Output Directory: Copy Always" 在我的代码中,我有: strPath = System.IO.Path.GetDirectoryName(S

在winforms项目中使用VS2010 Professional和vb.net

我正在尝试在我的项目中包含一个.bat文件,以便应用程序可以访问它并 在用户安装我的构建后运行它

我已将该文件放入我的资源中。 我已将其属性设置为

"Build Action: Embedded Resource"
 and 
"Copy to Output Directory: Copy Always"
在我的代码中,我有:

strPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase)
strPath = Right(strPath, strPath.Length - 6)

  Dim myProcess As New Process()
  Try  
     myProcess.StartInfo.UseShellExecute = False
     myProcess.StartInfo.FileName = strPath & "\resources\myfile.bat"
     myProcess.StartInfo.CreateNoWindow = True
     myProcess.Start()
     myProcess.WaitForExit()
  Catch e As Exception
      MessageBox.Show(e.Message)
  End Try
当我运行它时,它对我有效,但是在我构建它之后,我在构建中的任何地方都看不到.bat文件,并且它在任何其他机器上都不起作用

为什么文件不能与我的生成一起复制

谢谢

批处理文件(.bat)基本上是一个文本文件。你可以嵌入这个文件 通过资源设计器使用.txt扩展名,然后 以.bat文件的形式临时复制到硬盘上,并从 在那里


但是我如何制作临时拷贝并运行它呢

该文件存储为长字符串,只需将该字符串写入扩展名为.bat的文件即可。例如,通过“项目属性”中的“资源”选项卡添加名为“test.txt”的文件,意味着您可以这样编写:

IO.File.WriteAllText("test.bat", My.Resources.test)

批处理文件(.bat)基本上是一个文本文件。您可以通过资源设计器嵌入扩展名为.txt的文件,然后在硬盘上创建一个临时副本作为.bat文件,并从那里运行它。但是如何创建临时副本并运行它呢?好的,我已经做到了,但是如何使用此方法向.bat文件发送参数呢?实际上,它仍然只在我的机器上工作。我无法在另一台计算机上创建该文件。请使用process类运行该文件。它允许传递参数。确保您具有运行该文件的权限以及从正在使用的文件夹运行该文件的权限。另一方面,大多数.bat文件都相对较短,可以做简单的事情。做一个函数来做同样的事情应该不会那么困难。