Проблема:
Я создаю AC # 4.0, веб-приложение на основе MVC 3.Я использую SQLite в качестве базы данных.
Когда я запускаю приложение, я получаю эту ошибку:
Не удалось загрузить файл или сборку 'System.Data.SQLite' или одну из ее зависимостей,Была предпринята попытка загрузить программу с неверным форматом.
Это трассировка загрузки сборки Fusion:
=== Pre-bind state information ===
LOG: User = Steve-PC\Steve
LOG: DisplayName = System.Data.SQLite
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: System.Data.SQLite | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
LOG: Appbase = file:///C:/Users/Steve/Documents/Visual Studio 2010/Projects/EMMA3/EMMA_Web/
LOG: Initial PrivatePath = C:\Users\Steve\Documents\Visual Studio 2010\Projects\EMMA3\EMMA_Web\bin
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Users\Steve\Documents\Visual Studio 2010\Projects\EMMA3\EMMA_Web\web.config
LOG: Using host configuration file: C:\Users\Steve\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/Steve/AppData/Local/Temp/Temporary ASP.NET Files/root/6454c2d1/d37faccb/System.Data.SQLite.DLL.
LOG: Attempting download of new URL file:///C:/Users/Steve/AppData/Local/Temp/Temporary ASP.NET Files/root/6454c2d1/d37faccb/System.Data.SQLite/System.Data.SQLite.DLL.
LOG: Attempting download of new URL file:///C:/Users/Steve/Documents/Visual Studio 2010/Projects/EMMA3/EMMA_Web/bin/System.Data.SQLite.DLL.
ERR: Failed to complete setup of assembly (hr = 0x8007000b). Probing terminated.
Я использую:
Windows 7 x64 Visual Web Developer 2010 IIS Express 7.5 System.Data.SQLite x64 1.0.77.0
Я много гуглил, и общая мысль, похоже, связана с выполнением 32-битнойсборка в 64-битной системе или наоборот.
То, что я пробовал:
- Переключиться на IIS Express со встроенного веб-сервера VS.Очевидно, что встроенный сервер может работать только с 32-битными приложениями, а IIS Express может выполнять и то, и другое.Без изменений.
- Убедитесь, что вы используете 64-битную версию SQLite.Первоначально я использовал обычную версию, но переход на 64-разрядную версию, похоже, не помог.
- Включите параметр «32-разрядное приложение на win 64» в IIS.(В IIS Express это делается с помощью appcmd.exe - appcmd set apppool /apppool.name: "" / enable32bitapponwin64: true).Опять же, это не изменилось.
- Удалите / переустановите Sqlite.Без изменений.
- Создайте более простую версию проекта, чтобы убедиться, что все чисто и сузить причину.Это привело меня к «шагам воспроизведения» ниже, но на самом деле не помогло мне.
Шаги для воспроизведения:
- Создать новый MVC3. Веб-проект.
- Запустите его и убедитесь, что он работает.
- Используйте Nuget, чтобы добавить ссылку на SQLite x64.
- Запустите сайт еще раз, и он выдаст эту ошибку.
Итак, в заключение - я получаю сообщение об ошибке выше, это определенно связано с SQLite, у меня все 64-битное, но все равно не работает.Есть идеи?
Заранее спасибо.