2012-01-22 4 views
0

이 문제에 대해 많은 질문을 발견했지만 답변을 찾지 못했습니다. 나는 다소 이상한 문제가있다. 내 프로젝트에 System.Data.SQLite에 대한 32 비트 참조를 추가하면 x86 플랫폼에서만 작동하며 내 응용 프로그램이 32 비트 Windows에서만 실행되므로 저만 괜찮습니다. 하지만 32 비트 Windows에서이 응용 프로그램을 실행하려고하면 예외 Could not load file or assembly 'System.Data.SQLite'이 발생합니다. 그런 다음 System.Data.SQLite dll의 64 비트 버전을 다운로드했습니다. 그럼 어떤 CPU 대상 플랫폼으로 디버그를 시작할 수 있지만 동일한 오류가있는 내 32 비트 XP에서 응용 프로그램을 실행할 수 없습니다 Could not load file or assembly 'System.Data.SQLite'.x86 및 x64 System.Data.SQLite 문제

나는 조금 미쳤어. 어떤 관련성이 있는지 모르겠지만 어떤 것도 보이지 않지만 내 응용 프로그램의 대상 프레임 워크는 .NET 4.0이며 System.Data.SQLite (.NET 2.0, .NET 3.5, .NET 4.0) 32 비트 및 64 비트 버전, 아무것도 도움이되지 않습니다. 다음은 설정 파일의 모습입니다 :

<system.data> 
    <DbProviderFactories> 
     <remove invariant="System.Data.SQLite"/> 
     <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite"/> 
    </DbProviderFactories> 
    </system.data> 

    <connectionStrings> 
    <add name="VetStationConnection" connectionString="Data Source=VeterinaryStation.s3db" providerName="System.Data.SQLite.SQLiteFactory"/> 
    </connectionStrings> 

답변

2

해결책을 찾았습니다. 실제 내가 어디에서 실수했는지 찾았습니다. 정적으로 링크 된 것이 아닌 바이너리를 다운로드했고 Visual C++ 런타임이 필요했습니다. 그래서 이것을위한 솔루션은 Visual C++ 런타임을 설치하거나 정적으로 링크 된 바이너리 인 system.data.sqlite를 다운로드하는 것입니다. D

+0

누락 된 부분이 너무 많아서 게시 해 주셔서 감사합니다! – Rob

관련 문제