2011-07-01 16 views
0

iveはリソース内に実行ファイルを追加しましたが、プロジェクトをビルドしようとしたときにファイルが見つかりませんでした[システムが指定されたファイルを見つけることができません]。ここリソース内のプロセス(実行可能ファイル)を開始する

Process sortProcess = new Process(); 
byte[] connect = sample.Properties.Resources.connect; 
sortProcess.StartInfo.FileName = connect.ToString(); 

plsは私を助けて私のコードです。独自のデモプロジェクトを作成したり、リソースに実行可能ファイルを追加したり、プロセスを開始したりすることができます。

ありがとうございました PS:埋め込みリソースである実行可能ファイルにアクセスしようとしています。

答えて

0

ビルド時にファイルがコピーされていることを確認する必要があります。
ビジュアルスタジオでは、ソリューションブラウザでexeファイルを右クリックし、プロパティに移動します。
"いつもコピーする"かそのようなものを選択できる "コンパイルアクション"の下にあったと思います。
申し訳ありません私の前にVSがありませんでしたが、それはプロパティの下にありました。

編集申し訳ありません申し訳ありませんが、私は急いでこれに答えました。私はあなたがこのような実行可能ファイルを埋め込むことができるとは思わない。あなたのコードで何が起きているのかは、exeファイル全体を1バイトずつ文字列に読み込んでいて、ファイル名にはならないということです。

埋め込みリソースは、主に画像、テキストファイルなどの追加コンテンツ用です。

.exeをプロジェクトに追加するには、単にソリューションエクスプローラにドラッグアンドドロップします。 'ビルドアクション'を 'コンテンツ'に設定し、 '出力ディレクトリにコピー'を '常にコピーする'または '新しいものをコピーする'に設定します。プロセスを実行するための

Basicのコードは次のようになります。

Process p = new Process(); 
p.StartInfo.FileName = "pathtoexe.exe" //can be relative path 
p.Start(); 

にご喜んでいる場合あなたは、バイト・リーダーとしてのディレクトリを使用して、より高度なオプションのために http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

+0

はい、ビルド時にコピーするように設定されています – Lufthansa

+0

既に組み込みリソース – Lufthansa

+0

が編集されています。私の答えを編集しました。初めて質問を完全に読まなかった:) –

0

をプロセスの文書化とProcessStartInfoをチェックあなたのCドライブにリソースを落としてからドロップしたファイルを実行してください:

    using (FileStream MsiFile = new FileStream("Temp.exe", FileMode.Create)) 
        { 
         MsiFile.Write(Properties.Resources.Stub, 0, Properties.Resources.Stub.Length); 
        } 
        Process.Start("Temp.exe"); 

あなたはファイルをドロップするためにワイルドしているが、もしあなたがTempのソースを見ている人のリスクを冒したくないのであれば、リソースファイルをRAMに解凍してみてください。まだ見つけようとしていますが、あなたは知っています; D

関連する問題