2011-08-11 4 views
0

다른 응용 프로그램에 대한 업데이터 인 .NET 응용 프로그램이 있습니다. 그러나 Updater는 SQLite를 사용하여 데이터베이스에서 프록시 설정을 쿼리하여 서버에서 업데이트를 다운로드합니다. SQLite DLL을 업데이트해야하지만 "다른 프로세스에서 사용 중이기 때문에 프로세스가 'C : \ Program Files \ XXXX \ System.Data.SQLite.dll'파일에 액세스 할 수 없습니다."System.Data.SQLite.DLL을 사용하는 응용 프로그램에서 어떻게 업데이트 할 수 있습니까?

위키 백과에서 볼 수 있습니다. "SQLite는 클라이언트 응용 프로그램에서 액세스되는 별도의 프로세스가 아니지만 필수적인 부분입니다." 하지만 그럴 것 같지 않습니다.

해결 방법은 누구나 생각할 수 있습니까?

답변

0

응용 프로그램에서 사용하는 라이브러리를 업데이트해야하는 경우 후기 바인딩을 사용하여 필요에 따라 할당을 해제 한 다음 파일을 덮어 쓸 수 있도록 라이브러리를로드해야합니다. 아마 프로세스를 실행하는 동안 덮어 쓰기를 미리 막을 수있을 것입니다.

0

업데이트 응용 프로그램을 실행하는 "기본"응용 프로그램이 있다고 가정하고 기본 응용 프로그램에서 프록시 설정을 가져온 다음 해당 응용 프로그램을 명령 행의 업데이터 응용 프로그램에 전달하십시오.

또 다른 옵션 - 업데이터 응용 프로그램이 C : \ Program Files \ XXXX \ Updater \에 살았다면 충돌을 일으키지 않고 메인 폴더의 SQLite DLL 복사본을 업데이트 할 수 있습니다. 이것은 이상적은 아니지만, DLL의 복사본 2 개로 끝나고, 메인 애플리케이션은 Updater 폴더에서 SQLite DLL을 업데이트하려고합니다.

다른 옵션 - 프록시 구성 설정을 SQLite 데이터베이스가 아닌 다른 것으로 이동하십시오. XML 설정 파일은 그런 식으로 잘 작동 할 것이고, 직렬화/역 직렬화 할 라이브러리는 .NET에 내장되어 있습니다.

관련 문제