在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文件,它在任何其他机器上都不起作用。
为什么不使用我的构建文件复制文件?
感谢。
答案 0 :(得分:0)
批处理文件(.bat)基本上是一个文本文件。你可以嵌入文件 通过资源设计器扩展.txt,然后创建一个 作为.bat文件在硬盘驱动器上临时复制,并从中运行 那里。
但如何制作临时副本并运行它?
文件存储为长字符串,只需将字符串写入扩展名为.bat的文件即可。例如,通过项目属性中的Resources选项卡添加名为“test.txt”的文件意味着您可以这样写:
IO.File.WriteAllText("test.bat", My.Resources.test)