Программа перестала работать, проблема Имя события: CLR20r3 - PullRequest
9 голосов
/ 01 сентября 2011

Я запускаю программу из папки релизов.На моей Windows 7 64-битной машине это работает.

В виртуальной машине Windows 7 32-битной это работает.

На третьей машине с Windows 7 64-битной это не работает.

На каждой машине, на которой я установил .NET Framework 4, мой проект использует .NET Framework 3.5, потому что я использую базу данных SQLite и dll SQLite, как я понимаю, для того, чтобы проект был .NET Framework 3.5.

Я использую Visual Studio 2010 Express edition, базу данных SQLite.

Ошибка третьего компьютера:

Description:
Stopped working

Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01:   geotest.exe
Problem Signature 02:   1.0.0.0
Problem Signature 03:   4e58f462
Problem Signature 04:   GeoTest
Problem Signature 05:   1.0.0.0
Problem Signature 06:   4e58f462
Problem Signature 07:   f
Problem Signature 08:   12
Problem Signature 09:   System.BadImageFormatException
OS Version: 6.1.7600.2.0.0.256.1
Locale ID:  1033

Ответы [ 2 ]

8 голосов
/ 01 сентября 2011

Среда Common Language Runtime начиная с версии 3.0 и далее использует другой метод для загрузки сборки в смешанном режиме (та, которая содержит как управляемый , так и собственный код), например SQLite.Поскольку SQLite был создан на основе .NET Framework 2.0, мы должны специально указать CLR использовать старый способ загрузки сборок в смешанном режиме 2.0:

Добавить (или обновить) app.config в ваш проект:

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

Другие вопросы также содержат дополнительную информацию по этому вопросу: Специфичный для SQLite / общее объяснение

1 голос
/ 02 сентября 2011

В папке релиза нет System.Data.SQLite.DLL, что было проблемой.Теперь, когда я копирую это, все работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...