(Это дублированный вопрос, заданный в stackoverflow.com. Я прочитал ответы. Я пробовал решения, но это не решило мою проблему. Я объясню, что моя проблема и что я сделал).
Это моя проблема:
В моем приложении используется System.Data.SQLite.DLL. Я ссылался на него и работал нормально на своем компьютере, но он не запускался на другом компьютере. Это сообщение об ошибке:
System.IO.FileLoadException: не удалось загрузить файл или сборку 'System.Data.SQLite, Version = 1.0.88.0, Culture = neutral, PublicKeyToken = db937bc2d44ff139 'или одна из его зависимостей. Приложение не запускалось, потому что его бок о бок неправильная конфигурация. См. Приложение войдите в систему или используйте инструмент командной строки sxstrace.exe для более подробной информации.
(Исключение из HRESULT: 0x800736B1) Имя файла: 'System.Data.SQLite, Версия = 1.0.88.0, Культура = нейтральная, PublicKeyToken = db937bc2d44ff139 ' --- > System.Runtime.InteropServices.COMException(0x800736B1): Приложение не запускалось, потому что его бок о бок неправильная конфигурация. См. Журнал событий приложения или используйте инструмент командной строки sxstrace.exe для более подробной информации.
(Исключение из HRESULT: 0x800736B1) в SimPB.config.PrepareDatabase() в SimPB.config.InitializeProgram() в SimPB.Program.Main()
Мой компьютер работает под управлением Windows 7 32 бит, Visual Studio 2010.
Другой компьютер работает под управлением Windows 7 32 бит, без установки Visual Studio.
Что я пробовал:
Попытка 1: Убедитесь, что приложение построено с помощью Release + x86, и приложение построено с целевой структурой: .NET Framework 2.0 > . Готово.
Попытка 2: Убедитесь, что приложение ссылается на правильную сборку System.Data.SQLite, которая представляет собой x86 +.Net Framework 2.0 (sqlite-netFx20-binary-Win32-2005-1.0. 88,0). Готово
Попытка 3: Попробуйте эти коды в App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
и этот
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="true"/>
</runtime>
</configuration>
и этот
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
Готово.
Попытка 4: Попробуйте отключить контроль учетных записей пользователей на другом компьютере. Готово.
Попытка 5: Попробуйте установить Visual С++ Runtime на другом компьютере (я устанавливаю VIS-пакет Visual С++ Runtime 2010 (x86), также попробовал 2005 verson.). Готово.
Попытка 6: Попробуйте переустановить .NET Framework 2.0 с пакетом обновления 2 (SP2). Ошибка получения:
Вы должны использовать "Включить или отключить функции Windows" на панели управления, чтобы установить или настроить Microsoft.NET Framework 2.0 SP2.
Обновлено: (После чтения ответов и комментариев)
Попытка 7: Убедитесь, что файл System.Data.SQLite.DLL находится в папке выходного бина. Готово
Попытка 8: Двойное подтверждение, что на другом компьютере работает 32-разрядная Windows 7. Выполнено
Попытка 9: Измените объявление HintPath в файле .csproj:
Измените это:
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>E:\Developer Soft\SQLite\sqlite-netFx20-binary-bundle-Win32-2005-1.0.88.0\System.Data.SQLite.dll</HintPath>
</Reference>
Для этого:
<Reference Include="System.Data.SQLite, Version=1.0.88.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=x86">
<HintPath>..\System.Data.SQLite.dll</HintPath>
</Reference>
Готово для попытки 9.
После этих попыток результат остается тем же. Приложение может нормально работать с моего компьютера и не запускаться на другом компьютере.
Это бесплатное ПО с открытым исходным кодом, Простая телефонная книга. Я зафиксировал и загрузил последний исходный код на сервер управления версиями:
http://simpb.codeplex.com/SourceControl/list/changesets (Номер набора изменений: fd847ac6c406)