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。プロパティ名にドットを含めることはできません。

そのため、そのプロパティのタイプを決定し、適切な方法でファイルに保存する必要があります。Stringまたは のいずれかになる可能性が高いため、またはByte()を呼び出すことができます。File.WriteAllTextFile.WriteAllBytes

于 2016-06-24T10:01:02.740 に答える