0

我正在寻找在 VB 应用程序的资源中找到文件的路径。该应用程序很简单。

它会自动将 .7z 文件转换为自解压和启动文件。

3 个部分,7zS.sfx、config.txt 和一个 .7z 存档,即 Fruits.7z

7zS.sfx 和 config.txt 永远不会改变,所以我希望嵌入它们,.7z 存档将被拖到应用程序中。

现在我需要运行一个命令:copy /b RESOURCE PATH\7zS.sfx + RESOURCE PATH\config.txt + C:\Users\%username%\Desktop\Fruits\Fruit_List.7z Fruits.exe

我已经用 My.Resource.config.txt 尝试了几次,把它作为一个字节加载文件。我需要文件原封不动的命令提示符将在构造后处理它。

MyUtilities.RunCommandCom("copy /b c:\FruitTemp\7zS.sfx + c:\FruitTemp\config.txt + C:\Users\%username%\Desktop\Fruit\FruitArchive.7z c:\users\%username%\desktop\Fruit.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

嵌入式资源现在通过字节运行并存储在临时位置,如您从上面的命令中看到的那样。但是,此命令不会运行。它指出语法不正确。

4

1 回答 1

0

首先,运行时没有资源文件。关键是资源被编译成EXE的二进制代码。其次,如果您将名为“config.txt”的文件添加到资源中,则资源属性将为My.Resources.config. 您不能有一个带有点的属性名称。

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

于 2016-06-24T10:01:02.740 回答