在要执行的命令中添加嵌入式资源



我希望在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。你不能使用带点的属性名

因此,您需要确定该属性的类型,然后以适当的方式将其保存到文件中。它可能是StringByte(),因此您可以调用File.WriteAllTextFile.WriteAllBytes

相关内容

  • 没有找到相关文章

最新更新