Я всегда нахожу разочарование, когда сталкиваюсь с постами с одним и тем же вопросом, который никогда не был опубликован. Поэтому я опубликую то, что обнаружил, если оно, или даже кое-что, будет полезно другим. Я обнаружил, что многие другие разработчики сообщают, что бесцельная программа Windows 7 «перестала работать».
Кстати, я нашел самый простой способ протестировать развертывание приложения, и установщики должны были создать машину Virtual PC с той же конфигурацией, на которой в конечном итоге будет работать платформа. Затем скопируйте этот Virtual PC и выполните тестовый запуск на копии. Таким образом, я могу в любое время просто удалить копию, скопировать из оригинала и быстро начать заново.
Да, как сказал Космин, для свойства TargetPlatform этого решения также необходимо установить значение x86. Как бы то ни было, проблема не была устранена, приложение по-прежнему выдавало сообщение «Перестал работать».
Затем я проверил файл ERRORLOG журналов SQL (c: \ Program Files \ Microsoft SQL Server \ MSSQL10.SQLExpress \ MSSQL \ Log) и сообщил, что приложение пытается войти в систему с использованием аутентификации в смешанном режиме, в то время как SQL был установлен для Проверка подлинности Windows. Теперь я ЗНАЮ, что выбрал смешанный режим при установке SQL Express, так как мое приложение использует учетную запись службы sql, для которой мой установщик БД создает учетную запись. Так что как-то что-то изменилось (не знаете что?). Чтобы установить смешанный режим через SQL Server Management Studio, просто щелкните правой кнопкой мыши экземпляр, выберите «Безопасность» и измените проверку подлинности сервера. Без Management Studio вам нужно отредактировать реестр HKEY_LOCAL_MACHINE / Software / Microsoft / Microsoft SQL Server // MSSQLServer и отредактировать ключ LoginMode = 2 для Mixed. Еще раз, не устранив проблему, приложение все равно выдало сообщение «перестал работать».
Затем, случайно, я наткнулся на некоторые сообщения об этом сообщении, которое может быть вызвано во время запуска загрузкой 32-битных приложений в Windows 7. Я поместил MessageBoxes и Try / Catchs в первые строки, которые могли, и они так и не были отображены, и не было обнаружено ошибок.
Следующим, что я попробовал, было запустить DependencyWalker поверх моего exe. Сообщается, что отсутствуют 2 х 32-битные файлы: IEShims.dll и GPSVC.dll. Есть сообщения от других разработчиков, сталкивающихся с этим, и конечный результат был, я нашел их в C: \ Windows \ winsxs (GPSVC.dll назывался x86_microsoft-windows-g..licy-base.resources_31bf3856ad364e35_6.1.7600.16385_en-us_c10af1bed239c523_gpsvc.dll .mui_0c160ac2). Я поместил их в C: \ Windows \ System32, перекомпилировал мое приложение, развернул его на моем тестовом компьютере, и он наконец запустился!
Все еще не понимаю, почему, просто поместив их в каталог System32 на моем компьютере разработчика, приложение запустилось на тестовом компьютере? Но в любом случае, это решило проблему, и надеюсь, что это поможет другим.