2011-07-01 3 views
0

ive ajouté mon fichier exécutable dans les ressources, cependant, quand j'ai essayé de construire mon projet, j'ai obtenu un fichier non trouvé l'exception [Le système ne trouve pas le fichier spécifié].démarrer un processus (exécutable) dans les ressources

ici est mon code

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

pls me aider. vous pouvez essayer de créer votre propre projet de démonstration, ajouter des exécutables dans les ressources, puis démarrer le processus.

merci beaucoup PS: im essayant d'accéder à l'exécutable dans les ressources qui est une ressource intégrée.

Répondre

0

Vous devez vous assurer que le fichier est copié lors de la compilation.
En studio visuel, faites un clic droit sur le fichier exe dans le navigateur de solution et allez dans les propriétés.
Je crois que c'était sous "compiler l'action" où vous pouviez sélectionner "toujours copier" ou quelque chose comme ça.
Désolé je n'ai pas VS en face de moi, mais c'était là sous propriétés.

Édition Désolé, j'ai répondu à cette question en toute hâte. Je ne pense pas que vous pouvez ou devez intégrer des exécutables comme celui-ci. Qu'est-ce qui se passe dans votre code, c'est que vous lisez le fichier exe entier, octet par octet, à la chaîne, ce qui, bien sûr, ne se traduirait pas par un nom de fichier.

Les ressources intégrées sont principalement destinées à du contenu supplémentaire, tel que des images, des fichiers texte et autres.

Pour ajouter le fichier .exe à votre projet, vous pouvez simplement le glisser et le glisser dans l'explorateur de solution. Définissez 'build action' sur 'content' et 'Copy to output directory' sur 'always copy' ou 'copy if newer'.

Code de base pour l'exécution d'un processus serait:

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

Consultez la documentation sur le processus et ProcessStartInfo options plus avancées http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

+0

oui ,, son ensemble à copier en temps de construction .. – Lufthansa

+0

il est déjà configuré pour incorporer ressource – Lufthansa

+0

édité ma réponse, n'a pas entièrement lu votre question la première fois, sry :) –

0

Votre utilisation d'un répertoire comme lecteur Byte, si votre prêt à déposez la ressource sur votre lecteur C et exécutez le fichier déposé, puis utilisez ceci:

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

r wiling pour déposer le fichier, mais si vous ne voulez pas prendre le risque de voir la source de la Temp, alors essayez d'extraire le fichier de ressources à ram, im essayant toujours de savoir comment, mais si je découvre, laissez-malade vous savez, D

Questions connexes