我希望在VB应用程序的资源中找到文件的路径。这个应用程序很简单。
它会自动将。7z文件变成一个自解压和启动文件。
3部分,7zS。. sfx、config.txt和。7z文件,即Fruits.7z
7 z。sfx和config.txt将永远不会改变,所以我希望嵌入它们,.7z存档将被拖到应用程序中。
现在我需要运行如下命令:拷贝/b资源路径7zS。sfx + RESOURCE PATHconfig.txt + C:Users%username%DesktopFruitsFruit_List.7z Fruits.exe
我在My.Resource.config.txt中尝试了几次,把它作为一个字节加载文件。我需要文件原封不动,命令提示符也会在构造后处理它。
MyUtilities.RunCommandCom("copy /b c:FruitTemp7zS.sfx + c:FruitTempconfig.txt + C:Users%username%DesktopFruitFruitArchive.7z c:users%username%desktopFruit.exe", "/C", True)
Shared Sub RunCommandCom(command As String, arguments As String, permanent As Boolean)
Dim p As Process = New Process()
Dim pi As ProcessStartInfo = New ProcessStartInfo()
pi.Arguments = " " + If(permanent = True, "/K", "/C") + " " + command + " " + arguments
pi.FileName = "cmd.exe"
p.StartInfo = pi
p.Start()
End Sub
嵌入的资源现在通过字节运行,并存储在临时位置,正如您从上面的命令中看到的那样。但是这个命令不会运行。它指出语法不正确。
首先,在运行时没有资源文件。整个要点是,资源被编译成EXE的二进制代码。其次,如果你添加一个名为"config.txt"的文件到你的资源,那么资源属性将是My.Resources.config
。你不能使用带点的属性名
因此,您需要确定该属性的类型,然后以适当的方式将其保存到文件中。它可能是String
或Byte()
,因此您可以调用File.WriteAllText
或File.WriteAllBytes
。