Запуск внешнего процесса 4.0 из приложения 2.0 - PullRequest
0 голосов
/ 26 января 2012

Были некоторые упоминания об использовании библиотек 4.0 из приложения 2.0, с использованием взаимодействия COM. Мое требование немного отличается тем, что я не хочу предоставлять типы своему приложению 2.0, но у меня есть команда Diagnostics.Process.Start (....) в приложении 2.0, которая до сих пор запускала внешний EXE в другом месте в локальный диск, который также был скомпилирован в рамках 2.0.

Внешний EXE был обновлен до версии Framework 4.0, и Diagnostics.Process.Start больше не работает, по-видимому, по этой причине.

Я пытался изменить тип фреймворка в файлах .csproj для вызываемого EXE, перекомпилировал и попробовал это, но все равно не рад, не уверен, что теперь, когда он находится под VS2010, он необратимо изменен, чтобы больше не быть совместимым с 2.0 , Я бы не подумал, что это будет проблемой, как если бы я сказал, что я не вызываю типы в библиотеке, я просто использую Diagnostics.Process.Start для запуска внешнего EXE-файла, что, безусловно, не должно иметь значения, какая версия фреймворка он скомпилирован под?

Кто-нибудь испытывал что-либо подобное?

1 Ответ

1 голос
/ 26 января 2012

Если вы запускаете новый процесс для вашего исполняемого файла 4.0, версия платформы не должна иметь значения.Эти два процесса разделены с различными средами.Можете ли вы указать ошибки, которые вы получаете при попытке запустить новый 4.0 EXE?

Если изменение целевого фреймворка на 2.0 в новых проектах также не удается, я предполагаю, что это что-то еще.Может быть, безопасность доступа к коду или общие права доступа?

Редактировать: Если вы не получаете явных сообщений об ошибках, а просто видите, что ваш 4.0 EXE запускается и закрывается без предупреждения, попробуйте использовать такие инструменты, как ProcMon или DbgView для перехвата неожиданных сообщений или добавления вызова System.Diagnostics.Debugger.Attach () в основную точку входа вашего процесса 4.0, чтобы войти в режим отладки и посмотреть, что происходит.

...