Я включил исполняемый файл в свой проект (т. Е. Когда вы разворачиваете проект в обозревателе решений в VS2008, вы видите его вместе со всеми другими классами). Этот исполняемый файл должен быть запущен моей программой. Как я могу получить его путь программно?Как я могу получить путь к скомпилированному ресурсу?
ответ
Я никогда не делал этого раньше с исполняемыми файлами ... Однако, если это встроенный ресурс, вы можете перечислить список встроенных ресурсов в вашем приложении (или обратиться непосредственно к нему по имени), когда вы найдете один подходящий, записать его на диск, а затем выполнить.
Чтобы извлечь:
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream stream = assembly.GetManifestResourceStream("resource name")
{
using FileStream fs= new FileStream("executable name")
{
byte[] buffer = new byte[32*1024];
int bytesRead;
while ((bytesRead= stream.Read(buffer, 0, buffer.Length)) > 0)
{
fs.Write(buffer, 0, bytesRead);
}
}
}
Для выполнения:
using System.Diagnostics;
Process someProc;
someProc= Process.Start("executable name");
Как Daniel L указывает, не забудьте пометить ресурсы как "внедренный ресурс".
Вот пример получения текста из текстового ресурса:
Assembly assembly = Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream("ResourceTextFileName");
StreamReader textStreamReader = new StreamReader(stream);
Надеюсь, вы можете подобрать, как сделать исполняемым с этим.
Вы можете использовать Assembly
класс -
Assembly.GetExecutingAssembly().Location
должен направить вас к вашей беговой приложения. Используйте этот путь, отмените .EXE и добавьте имя файла вашего исполняемого файла.
string filename = Assembly.GetExecutingAssembly().Location;
filename = filename.Substring(0, filename.LastIndexOf("\\") + 1);
filename += "my_exe_name.exe";
Process.Start(filename);
Обратите внимание, что это не будет работать для WebApps, однако, как свойство местоположения может указывать на случайных местах, как GAC.
Если вы разворачиваете исполняемый файл вместе с проектом в одну и ту же папку, вы можете использовать класс среды, чтобы получить рабочий каталог исполняемого файла. Это будет: Environment.CurrentDirectory.
Вы можете установить свойство «Скопировать в выходной каталог» исполняемого файла в проводнике решений на «Копировать все» или «Копировать, если новый», чтобы подтвердить это.
Это не совсем то, что вы просили, но может быть полезно при использовании одного из предложений других людей выложили:
Имейте в виду, что если ваше приложение является Windows Forms приложение, и он заканчивает установлен в C : \ Program Files ... у вас может не быть права на запись в папку вашего приложения, если пользователь, запускающий приложение, не работает как администратор.
Это может быть проблемой, если вы хотите «извлечь» внедренный ресурс и сохранить его на диск в той же папке, что и ваше приложение.
Я бы рекомендовал либо:
Не встраивание EXE-файл в качестве ресурса. Просто установите для параметра «Копировать в выходной каталог» значение «Всегда». Затем разверните его вместе со своей основной.exe
Внедрение его в качестве ресурса, но при сохранении его на диске используйте либо временную папку Windows (если это всего лишь одно время), либо папка данных пользователя (C: \ Documents and Settings \ [user] \ Application Data)
Вы можете получить нужную папку для текущей ОС, как это:
// for the Windows temp folder
Path.GetTempPath()
// for the user's application data folder
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))
- 1. Единство: Получить путь к ресурсу
- 2. C# Получить полный путь к встроенному ресурсу?
- 3. Как сохранить путь к ресурсу?
- 4. Не удается получить путь к ресурсу
- 5. Как я могу программно получить доступ к ресурсу dropwizard?
- 6. Как я могу получить доступ к ресурсу JAX-RS?
- 7. Как я могу получить доступ к $ ресурсу от контроллера angularjs?
- 8. Как я могу получить путь к файлу?
- 9. Как я могу получить путь к файлу?
- 10. Как я могу получить путь к корзине?
- 11. [iPhone Xcode] Как я могу получить путь к ресурсу на тренажере/устройстве?
- 12. Как я могу получить путь к ресурсу в папке WEB-INF/class (java ee динамический проект)
- 13. Как получить путь к ресурсу в Java JAR-файле
- 14. Как получить путь к ресурсу/файлу из Java JAR-файла
- 15. Как получить путь к ресурсу в Tapestry 5
- 16. Как получить путь к ресурсу в проекте статической библиотеки
- 17. Путь к ресурсу внутри исполняемого jar
- 18. как получить путь к ресурсу с помощью подконтура Использования NSBundle
- 19. Создать путь к вложенному ресурсу в Rails
- 20. Я не могу получить путь к файлу
- 21. Добавить путь к ресурсу UIWebView Cordova IOS
- 22. динамический путь к ресурсу в springmvc
- 23. C++ получить абсолютный путь к модели/ресурсу от относительного
- 24. symfony2 2.7 определить путь к ресурсу
- 25. найти путь к ресурсу JAX-RS
- 26. Cordova/PhoneGap Получить путь к ресурсу (за пределами папки Res)
- 27. Как я могу получить путь к файлу, который я загружаю?
- 28. Как получить доступ к файловому ресурсу программно
- 29. Получить путь к ресурсу файла в java, используя класс Path
- 30. PhpStorm относительный путь к ресурсу корня
+1 для подачи точно такой же, что и я о том, чтобы:] (Похоже, единственное решение что на самом деле понял вопрос ...) –
Не забудьте пометить exe-файл как em местный ресурс ... –