Я перешел черту отчаяния с этим парнем. Я был так уверен, что все это сводилось к простой проблеме x86 / x64 с достаточно простым решением . Но нет. Оно вернулось. Еще раз, чтобы укусить меня за задницу.
Видите ли, я создал приложение, и ранее у меня были проблемы с его установкой на ноутбук под управлением Vista. Затем я заметил, что ноутбук работает не только на Vista, но и на 64-битной архитектуре. Поэтому я установил Visual Studio 2010 на ноутбук и перекомпилировал одну из библиотек DLL для x64. Приложение работает. Все отличное.
За исключением случаев, когда я пытаюсь установить это же приложение на некоторых 32-битных компьютерах под управлением XP. И приложение не будет работать снова. Даже после того, как на них будут установлены .NET 4 и VC ++ 2010.
Итак, сейчас я подвожу итоги и появляется общая картина: приложение работает, только если VS2010 установлен на том же компьютере.
Мой вопрос: какие шаги предпринимает Visual Studio для обеспечения работы приложения? И как я могу выполнить эти шаги на других компьютерах без установки Visual Studio?
Обновление - мое приложение и как оно выходит из строя
Мое приложение вызывает две основные управляемые библиотеки - обе являются обертками для неуправляемых библиотек: EnguCV для обработки изображений и Audiere для вывода звука.
Когда я говорю, что это не работает, я имею в виду, что он падает до полного открытия. Ошибка является ошибкой DllNotFound и ссылается на Audiere.Net (оболочку) в качестве причины. К сожалению, ProcMon, похоже, не любит эти машины и через несколько секунд неизменно зависает (принимая всю ОС с собой).
Обновление 2 - решение VS
На тот случай, если кто-то захочет попробовать его самостоятельно, я загрузил полное (22 Мб в архиве) VS решение . Если вы хотите играть с audiere.dll
, Audiere.Net.dll
и libaudieresharpglue.dll
, вам нужно взять Win32 Audiere DLL, lib и заголовок , а также привязку Харальда Филкера на C # .
Если кто-то достаточно безумен, чтобы поиграть, я был бы очень благодарен за укол здравомыслия.