Запуск программы с System.diagnostics.process.Start вызывает пропущенную методексацию

StackOverflow https://stackoverflow.com/questions/3513724

Вопрос

Я работаю над проектом Compact Framework 2.0, и я пытаюсь запустить программу «B» из другой программы «A», используя процесс. Start. Я делал это несколько раз раньше, но на этот раз я сталкиваюсь с некоторыми странными проблемами.

Программа «B» запускается, но она вызывает пропущенную методексацию, в основном говорит мне, что ей не хватает определенной сборки, на которую она ссылается. Проблема в том, что сборка. Если я дважды щелкнув программу «B», она работает правильно без пропущенного методексекции, то только при запуске с процессом. Начните в программе «A», что возникает эта проблема. Я абсолютно понятия не имею, что здесь происходит. Я попытался установить собственность WorkingDirectory без повезения. Любые идеи относительно того, почему программа не может загрузить свои ссылки при выполнении через процесс. Start? Спасибо

System.Diagnostics.Process proc = new System.Diagnostics.Process();
            ProcessStartInfo startInfo = new ProcessStartInfo(programBFullPath, "argument");

            //I've been changing these two properties, have tried shell execute with both false and true, tried setting working directory and not setting it also
            startInfo.UseShellExecute = false;
            startInfo.WorkingDirectory = programBDirectory;

            proc.StartInfo = startInfo;
            proc.Start();

РЕДАКТИРОВАТЬ Я просто подумал о чем -то ... оба программы «а» и программа «b» используют .dll, эта программа «b» не загружается. Если две программы не могут загружать одновременно .dll одновременно, то это проблема. Это так?

Это было полезно?

Решение 2

Ну, я заставил это работать, дублировав ссылочный код на сборке программы B и удалив все ссылки. Это далеко не элегантно, но я не мог заставить его работать по -другому. Если у кого -то есть представление о том, что могло бы пойти не так, я бы очень признателен. Это может пригодиться в другой раз. Спасибо

Другие советы

Как смотрится давление памяти на устройстве? Если программа B полагается на сборку C, но существует недостаточная память (виртуальная или физическая) для загрузки сборки C, то вы получите пропущенную методекспением (вместо OutofmemoryException, которое, как я всегда думал, будет иметь больше смысла).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top